[config] trigger app restart through plugn rather than exec

This commit is contained in:
Alex Quick
2017-09-23 17:18:58 -04:00
parent a8563489e7
commit 60e3b37d39
3 changed files with 25 additions and 9 deletions

View File

@@ -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()

View File

@@ -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)
}

14
plugins/ps/app-restart Executable file
View File

@@ -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 "$@"