diff --git a/plugins/config/config.go b/plugins/config/config.go index 8aed5174e..b0ef6e435 100644 --- a/plugins/config/config.go +++ b/plugins/config/config.go @@ -48,14 +48,12 @@ func SetMany(appName string, entries map[string]string, restart bool) { } if !global && restart && env.GetBoolDefault("DOKKU_APP_RESTORE", true) { - common.LogInfo1(fmt.Sprintf("Restarting app %s", appName)) - cmd := common.NewTokenizedShellCmd("dokku", "ps:restart", appName) - cmd.Execute() + Restart(appName) } } -//Unset a value in a config. If appName is empty the global config is used. If restart is true the app is restarted. -func Unset(appName string, keys []string, restart bool) { +//UnsetMany a value in a config. If appName is empty the global config is used. If restart is true the app is restarted. +func UnsetMany(appName string, keys []string, restart bool) { global := appName == "" env := GetConfig(appName, false) var changed = false @@ -72,9 +70,7 @@ func Unset(appName string, keys []string, restart bool) { } if !global && restart && env.GetBoolDefault("DOKKU_APP_RESTORE", true) { - common.LogInfo1(fmt.Sprintf("Restarting app %s", appName)) - cmd := common.NewTokenizedShellCmd("dokku", "ps:restart", appName) - cmd.Execute() + Restart(appName) } } @@ -125,6 +121,12 @@ func GetConfig(appName string, merged bool) *configenv.Env { return env } +//Restart trigger restart on app +func Restart(appName string) { + common.LogInfo1(fmt.Sprintf("Restarting app %s", appName)) + common.PlugnTrigger("app-restart", appName) +} + func loadConfig(appName string) (*configenv.Env, error) { if appName == "" || appName == "--global" { return configenv.LoadGlobal() diff --git a/plugins/config/src/subcommands/unset/unset.go b/plugins/config/src/subcommands/unset/unset.go index 856854612..9d388a762 100644 --- a/plugins/config/src/subcommands/unset/unset.go +++ b/plugins/config/src/subcommands/unset/unset.go @@ -15,5 +15,5 @@ func main() { args.Parse(os.Args[2:]) appName, keys := config.GetCommonArgs(*global, args.Args()) - config.Unset(appName, keys, !*noRestart) + config.UnsetMany(appName, keys, !*noRestart) } diff --git a/plugins/ps/app-restart b/plugins/ps/app-restart new file mode 100755 index 000000000..614d4a424 --- /dev/null +++ b/plugins/ps/app-restart @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions" +source "$PLUGIN_AVAILABLE_PATH/ps/functions" + +ps_app_restart() { + declare desc="ps app-restart plugin trigger" + local trigger="ps_app_restart" + local APP="$1"; + + ps_restart "$APP" +} + +ps_app_restart "$@"