Add support for provisioning and rebuilding via interface

This commit is contained in:
Tom 2023-07-09 11:18:14 +02:00
parent f5c5999f44
commit ddb4bb3546
76 changed files with 1306 additions and 625 deletions

View file

@ -3,6 +3,7 @@ package extras
import (
"context"
_ "embed"
"errors"
"github.com/FAU-CDI/wisski-distillery/internal/phpx"
"github.com/FAU-CDI/wisski-distillery/internal/wisski/ingredient"
@ -24,6 +25,25 @@ func (settings *Settings) Get(ctx context.Context, server *phpx.Server, key stri
return
}
var errFailedToSetSetting = errors.New("failed to update setting")
func (settings *Settings) Set(ctx context.Context, server *phpx.Server, key string, value any) error {
return settings.Dependencies.PHP.ExecScript(ctx, server, nil, settingsPHP, "set_setting", key, value)
var ok bool
err := settings.Dependencies.PHP.ExecScript(ctx, server, &ok, settingsPHP, "set_setting", key, value)
if err == nil && !ok {
err = errFailedToSetSetting
}
return err
}
var errFailedToSetTrustedDomain = errors.New("failed to set trusted domain")
func (settings *Settings) SetTrustedDomain(ctx context.Context, server *phpx.Server, domain string) error {
var ok bool
err := settings.Dependencies.PHP.ExecScript(ctx, server, &ok, settingsPHP, "set_trusted_domain", domain)
if err == nil && !ok {
err = errFailedToSetTrustedDomain
}
return err
}