Files
dokku/plugins/plugin/internal-functions

94 lines
2.0 KiB
Plaintext
Raw Permalink Normal View History

#!/usr/bin/env bash
set -eo pipefail
[[ $DOKKU_TRACE ]] && set -x
2018-04-27 13:44:29 -04:00
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
cmd-plugin-list() {
declare desc="lists all plugins"
declare cmd="plugin"
[[ "$1" == "$cmd" ]] && shift 1
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
plugn list
}
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}$"
}
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"
}
plugin_prime_bash_completion() {
declare desc="primes the bash-completion cache"
dokku_log_info1_quiet "Priming bash-completion cache"
dokku --quiet help --all | awk '/^ /{ print $1 }' | sort >"/var/cache/dokku-completion"
}
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
}