2017-03-12 21:26:46 -06:00
|
|
|
#!/usr/bin/env bash
|
2019-01-07 01:04:17 -05:00
|
|
|
set -eo pipefail
|
|
|
|
|
[[ $DOKKU_TRACE ]] && set -x
|
2018-04-27 13:44:29 -04:00
|
|
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
2017-03-12 21:26:46 -06:00
|
|
|
|
2020-02-09 22:41:39 -05:00
|
|
|
cmd-plugin-list() {
|
2017-03-12 21:26:46 -06:00
|
|
|
declare desc="lists all plugins"
|
2020-02-10 01:40:30 -05:00
|
|
|
declare cmd="plugin"
|
|
|
|
|
[[ "$1" == "$cmd" ]] && shift 1
|
2017-03-12 21:26:46 -06:00
|
|
|
|
2026-07-07 05:17:40 -04:00
|
|
|
local FORMAT="stdout"
|
|
|
|
|
local arg
|
|
|
|
|
while [[ "$#" -gt 0 ]]; do
|
|
|
|
|
arg="$1"
|
|
|
|
|
shift
|
|
|
|
|
case "$arg" in
|
|
|
|
|
--format)
|
|
|
|
|
if [[ "$#" -gt 0 ]]; then
|
|
|
|
|
FORMAT="$1"
|
|
|
|
|
shift
|
|
|
|
|
else
|
|
|
|
|
FORMAT=""
|
|
|
|
|
fi
|
|
|
|
|
;;
|
|
|
|
|
--format=*)
|
|
|
|
|
FORMAT="${arg#--format=}"
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
if [[ "$FORMAT" != "stdout" ]] && [[ "$FORMAT" != "json" ]]; then
|
|
|
|
|
dokku_log_fail "Invalid output format specified, supported formats: json, stdout"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ "$FORMAT" == "json" ]]; then
|
|
|
|
|
"$PLUGIN_AVAILABLE_PATH/plugin/plugin-list" --format json
|
|
|
|
|
return "$?"
|
|
|
|
|
fi
|
|
|
|
|
|
2017-03-12 21:26:46 -06:00
|
|
|
plugn list
|
|
|
|
|
}
|
2018-04-27 04:09:53 -04:00
|
|
|
|
2020-04-01 11:48:28 -04:00
|
|
|
cmd-plugin-installed() {
|
|
|
|
|
declare desc="checks if a plugin is installed"
|
|
|
|
|
declare cmd="plugin:installed"
|
|
|
|
|
[[ "$1" == "$cmd" ]] && shift 1
|
|
|
|
|
declare PLUGIN_NAME="$1"
|
|
|
|
|
|
|
|
|
|
plugn list | awk '{print $1}' | grep -q "^${PLUGIN_NAME}$"
|
|
|
|
|
}
|
|
|
|
|
|
2020-07-17 14:37:59 -04:00
|
|
|
fn-plugin-set-permissions() {
|
|
|
|
|
declare desc="ensures correct permissions for all available plugins"
|
|
|
|
|
chown -R "${DOKKU_SYSTEM_USER}:${DOKKU_SYSTEM_GROUP}" "$PLUGIN_CORE_AVAILABLE_PATH" "$PLUGIN_AVAILABLE_PATH"
|
|
|
|
|
chown -R "${DOKKU_SYSTEM_USER}:${DOKKU_SYSTEM_GROUP}" "$PLUGIN_CORE_ENABLED_PATH" "$PLUGIN_ENABLED_PATH"
|
|
|
|
|
}
|
|
|
|
|
|
2018-04-27 04:09:53 -04:00
|
|
|
plugin_prime_bash_completion() {
|
|
|
|
|
declare desc="primes the bash-completion cache"
|
|
|
|
|
|
|
|
|
|
dokku_log_info1_quiet "Priming bash-completion cache"
|
2019-01-07 01:04:17 -05:00
|
|
|
dokku --quiet help --all | awk '/^ /{ print $1 }' | sort >"/var/cache/dokku-completion"
|
2018-04-27 04:09:53 -04:00
|
|
|
}
|
2021-01-17 22:23:04 -05:00
|
|
|
|
|
|
|
|
fn-is-core-plugin() {
|
|
|
|
|
declare PLUGIN_NAME="$1"
|
|
|
|
|
|
|
|
|
|
if [[ -L "$PLUGIN_CORE_ENABLED_PATH/$PLUGIN_NAME" ]]; then
|
|
|
|
|
return 0
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
return 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn-is-valid-plugin() {
|
|
|
|
|
declare PLUGIN_NAME="$1"
|
|
|
|
|
|
|
|
|
|
if [[ "$PLUGIN_NAME" =~ ^[0-9a-zA-Z_-]+$ ]]; then
|
|
|
|
|
return 0
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
return 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn-plugin-enabled() {
|
|
|
|
|
declare PLUGIN_NAME="$1"
|
|
|
|
|
|
|
|
|
|
if [[ -L "$PLUGIN_ENABLED_PATH/$PLUGIN_NAME" ]]; then
|
|
|
|
|
return 0
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
return 1
|
|
|
|
|
}
|