refactor: remove need for internal dokku calls

Avoid internal dokku calls will avoid potentially expensive subprocesses - in particular, user-auth will be re-invoked, which can be expensive.
This commit is contained in:
Jose Diaz-Gonzalez
2021-01-23 12:32:31 -05:00
parent aad7f67f7c
commit 9137be814c
11 changed files with 55 additions and 14 deletions

View File

@@ -20,9 +20,10 @@ cmd-report() {
dokku_log_info1 "sigil version: $(sigil -v)"
dokku_log_info1 "herokuish version: "
"$DOCKER_BIN" container run $DOKKU_GLOBAL_RUN_ARGS --rm "$DOKKU_IMAGE" herokuish version | sed "s/^/ /"
dokku_log_info1 "dokku version: $(dokku version)"
dokku_log_info1 "dokku version: $(dokku_version)"
dokku_log_info1 "plugn version: $(plugn version)"
dokku_log_info1 "dokku plugins: "
dokku plugin:list | sed "s/^/ /"
plugn list | sed "s/^/ /"
if [[ "$APP" == "--all" ]]; then
for app in $(dokku_apps); do

View File

@@ -0,0 +1 @@
hook

View File

@@ -17,6 +17,17 @@ dokku_apps() {
[[ $INSTALLED_APPS ]] && echo "$INSTALLED_APPS"
}
dokku_version() {
if [[ -f "$DOKKU_LIB_ROOT/STABLE_VERSION" ]]; then
DOKKU_VERSION=$(cat "${DOKKU_LIB_ROOT}/STABLE_VERSION")
elif [[ -f "$DOKKU_LIB_ROOT/VERSION" ]]; then
DOKKU_VERSION=$(cat "${DOKKU_LIB_ROOT}/VERSION")
else
dokku_log_fail "Unable to determine dokku's version"
fi
echo "dokku version ${DOKKU_VERSION}"
}
dokku_log_quiet() {
declare desc="log quiet formatter"
if [[ -z "$DOKKU_QUIET_OUTPUT" ]]; then

View File

@@ -8,7 +8,6 @@ cmd-plugin-list() {
declare cmd="plugin"
[[ "$1" == "$cmd" ]] && shift 1
plugn version
plugn list
}

View File

@@ -31,7 +31,7 @@ scheduler-docker-local-pre-deploy-chown-app() {
DOKKU_APP_TYPE=$(config_get "$APP" DOKKU_APP_TYPE || true)
DOKKU_APP_USER=$(config_get "$APP" DOKKU_APP_USER || true)
DOKKU_APP_USER=${DOKKU_APP_USER:="herokuishuser"}
APP_PATHS=$(dokku --quiet storage:list "$APP" || true)
APP_PATHS=$(plugn trigger storage-list "$APP" "deploy")
if [[ -n "$APP_PATHS" ]]; then
CONTAINER_PATHS=$(echo "$APP_PATHS" | awk -F ':' '{ print $2 }' | xargs)

View File

@@ -81,9 +81,9 @@ cmd-storage-list() {
declare cmd="storage:list"
[[ "$1" == "$cmd" ]] && shift 1
declare APP="$1"
local passed_phases="deploy"
local phase="deploy"
verify_app_name "$APP"
dokku_log_quiet "$APP volume bind-mounts:"
get_bind_mounts "$(get_phase_file_path "$passed_phases")"
plugn trigger storage-list "$APP" "$phase"
}

15
plugins/storage/storage-list Executable file
View File

@@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -eo pipefail
[[ $DOKKU_TRACE ]] && set -x
source "$PLUGIN_AVAILABLE_PATH/docker-options/functions"
source "$PLUGIN_AVAILABLE_PATH/storage/functions"
trigger-storage-storage-list() {
declare desc="storage storage-list trigger"
declare trigger="storage-list"
declare APP="$1" PHASE="$2"
get_bind_mounts "$(fn-get-phase-file-path "$APP" "$PHASE")"
}
trigger-storage-storage-list "$@"