#!/usr/bin/env bash set -eo pipefail [[ $DOKKU_TRACE ]] && set -x source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions" cmd-plugin-list() { declare desc="lists all plugins" declare cmd="plugin" [[ "$1" == "$cmd" ]] && shift 1 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 }