mirror of
https://github.com/dokku/dokku.git
synced 2025-12-29 00:25:08 +01:00
88 lines
1.9 KiB
Bash
Executable File
88 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eo pipefail
|
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
|
[[ $DOKKU_TRACE ]] && set -x
|
|
|
|
fn-run() {
|
|
declare desc="runs command in container"
|
|
|
|
declare APP=""
|
|
local SCHEDULER_ID
|
|
declare -a RUN_ENV
|
|
RUN_ENV=()
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
--cron-id=*)
|
|
local arg=$(printf "%s" "$1" | sed -E 's/(^--cron-id=)//g')
|
|
SCHEDULER_ID+=("$arg")
|
|
shift
|
|
;;
|
|
--no-tty)
|
|
export DOKKU_DISABLE_TTY=true
|
|
shift
|
|
;;
|
|
--cron-id)
|
|
if [[ ! $2 ]]; then
|
|
dokku_log_warn "expected $1 to have an argument"
|
|
break
|
|
fi
|
|
CRON_ID+=("$2")
|
|
shift 2
|
|
;;
|
|
-e=* | --env=*)
|
|
local arg=$(printf "%s" "$1" | sed -E 's/(^-e=)|(^--env=)//g')
|
|
RUN_ENV+=("$arg")
|
|
shift
|
|
;;
|
|
-e | --env)
|
|
if [[ ! $2 ]]; then
|
|
dokku_log_warn "expected $1 to have an argument"
|
|
break
|
|
fi
|
|
RUN_ENV+=("$2")
|
|
shift 2
|
|
;;
|
|
*)
|
|
APP="$1"
|
|
shift
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
verify_app_name "$APP"
|
|
|
|
local DOKKU_SCHEDULER=$(get_app_scheduler "$APP")
|
|
DOKKU_CRON_ID="$CRON_ID" plugn trigger scheduler-run "$DOKKU_SCHEDULER" "$APP" "${#RUN_ENV[@]}" "${RUN_ENV[@]}" "$@"
|
|
}
|
|
|
|
cmd-run() {
|
|
declare desc="runs command in container based on app image"
|
|
declare cmd="run"
|
|
[[ "$1" == "$cmd" ]] && shift 1
|
|
|
|
export DOKKU_RM_CONTAINER=1
|
|
fn-run "$@"
|
|
}
|
|
|
|
cmd-run-detached() {
|
|
declare desc="run a detached container"
|
|
declare cmd="run:detached"
|
|
[[ "$1" == "$cmd" ]] && shift 1
|
|
|
|
export DOKKU_DETACH_CONTAINER=1
|
|
export DOKKU_DISABLE_TTY=true
|
|
export DOKKU_RM_CONTAINER=1
|
|
fn-run "$@"
|
|
}
|
|
|
|
cmd-run-list() {
|
|
declare desc="list all run containers for an app"
|
|
declare cmd="run:list"
|
|
[[ "$1" == "$cmd" ]] && shift 1
|
|
declare APP="$1"
|
|
|
|
local DOKKU_SCHEDULER=$(get_app_scheduler "$APP")
|
|
plugn trigger scheduler-run-list "$DOKKU_SCHEDULER" "$APP"
|
|
}
|