Merge pull request #3038 from shrmnk/feature/ps-stopall

Feature: dokku ps:stopall
This commit is contained in:
Jose Diaz-Gonzalez
2018-02-13 01:44:05 -05:00
committed by GitHub
7 changed files with 53 additions and 5 deletions

View File

@@ -11,6 +11,7 @@ case "$1" in
ps:scale <app> <proc>=<count> [<proc>=<count>...], Get/Set how many instances of a given process to run
ps:start <app>, Start app container(s)
ps:stop <app>, Stop app container(s)
ps:stopall, Stop all app container(s)
ps:rebuild <app>, Rebuild an app from source
ps:rebuildall, Rebuild all apps from source
ps:report [<app>] [<flag>], Displays a process report for one or more apps

38
plugins/ps/subcommands/stopall Executable file
View File

@@ -0,0 +1,38 @@
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
source "$PLUGIN_AVAILABLE_PATH/config/functions"
source "$PLUGIN_AVAILABLE_PATH/ps/functions"
ps_stopall_cmd() {
declare desc="stops all apps via command line"
local cmd="ps:stopall"
local GNU_PARALLEL
if which parallel > /dev/null 2>&1; then
dokku_log_info1 "Rebuilding in parallel"
GNU_PARALLEL=$(parallel -V 2>&1 | grep GNU || true)
if [[ -z "$GNU_PARALLEL" ]]; then
# shellcheck disable=SC2046
parallel -i bash -c "dokku ps:stop {}" -- $(dokku_apps)
else
dokku_apps | parallel 'dokku ps:stop {}'
fi
return
fi
for app in $(dokku_apps); do
if ! (is_deployed "$app"); then
dokku_log_warn "App $app has not been deployed"
continue
fi
dokku_log_verbose "Stopping app $app ..."
if ps_stop "$app"; then
continue
fi
dokku_log_warn "dokku ps:stop ${app} failed"
done
}
ps_stopall_cmd "$@"