Files
dokku/plugins/plugin/functions

82 lines
2.7 KiB
Plaintext
Raw Normal View History

#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
disable_plugin() {
2016-03-08 15:30:34 -05:00
declare desc="disables specified plugin name"
local PLUGIN="$1"
[[ -e $PLUGIN_CORE_AVAILABLE_PATH/$PLUGIN ]] && dokku_log_fail "Cannot disable a core plugin"
[[ ! -e $PLUGIN_ENABLED_PATH/$PLUGIN ]] && dokku_log_fail "Plugin already disabled"
[[ ! -e $PLUGIN_AVAILABLE_PATH/$PLUGIN ]] && dokku_log_fail "Plugin does not exist"
2016-02-22 10:16:57 -08:00
plugn disable "$PLUGIN"
dokku_log_info1_quiet "Plugin $PLUGIN disabled"
}
enable_plugin() {
2016-03-08 15:30:34 -05:00
declare desc="enables specified plugin name"
local PLUGIN="$1"
[[ -e $PLUGIN_ENABLED_PATH/$PLUGIN ]] && dokku_log_fail "Plugin already enabled"
[[ ! -e $PLUGIN_AVAILABLE_PATH/$PLUGIN ]] && dokku_log_fail "Plugin does not exist"
2016-02-22 10:16:57 -08:00
plugn enable "$PLUGIN"
dokku_log_info1_quiet "Plugin $PLUGIN enabled"
}
download_plugin() {
2016-03-08 15:30:34 -05:00
declare desc="download plugin from URL and set name"
local PLUGIN_GIT_URL="$1"
local PLUGIN_NAME="$2"
plugn install "$PLUGIN_GIT_URL" "$PLUGIN_NAME"
}
download_and_enable_plugin() {
2016-03-08 15:30:34 -05:00
declare desc="wrapper to download and enable specified version of plugin"
local PLUGIN_GIT_URL="$1"
shift
while getopts ":-:" opt "$@"; do
case "$opt" in
-)
case "$OPTARG" in
committish)
val="${!OPTIND}"; OPTIND=$(( OPTIND + 1 ))
local PLUGIN_COMMITTISH="$val"
;;
name)
val="${!OPTIND}"; OPTIND=$(( OPTIND + 1 ))
local CUSTOM_NAME="$val"
;;
esac
;;
esac
done
local PLUGIN_NAME=${CUSTOM_NAME:-$(plugin_name "$PLUGIN_GIT_URL")}
dokku_log_info1_quiet "Cloning plugin repo $PLUGIN_GIT_URL to $PLUGIN_AVAILABLE_PATH/$PLUGIN_NAME"
download_plugin "$PLUGIN_GIT_URL" "$PLUGIN_NAME"
enable_plugin "$PLUGIN_NAME"
if [[ -n "$PLUGIN_COMMITTISH" ]];then
update_plugin "$PLUGIN_NAME" "$PLUGIN_COMMITTISH"
fi
}
update_plugin() {
2016-03-08 15:30:34 -05:00
declare desc="update plugin"
local PLUGIN="$1"
local PLUGIN_COMMITTISH="$2"
[[ ! -e $PLUGIN_AVAILABLE_PATH/$PLUGIN ]] && dokku_log_fail "Plugin ($PLUGIN) is not currently installed"
plugn update "$@"
}
uninstall_plugin() {
2016-03-08 15:30:34 -05:00
declare desc="uninstall plugin"
local PLUGIN="$1"
[[ -e $PLUGIN_CORE_AVAILABLE_PATH/$PLUGIN ]] && dokku_log_fail "Cannot uninstall a core plugin"
[[ ! -e $PLUGIN_AVAILABLE_PATH/$PLUGIN ]] && dokku_log_fail "Plugin ($PLUGIN) is not currently installed"
2016-02-22 10:16:57 -08:00
plugn uninstall "$PLUGIN"
dokku_log_info1_quiet "Plugin $PLUGIN uninstalled"
}
plugin_name() {
2016-03-08 15:30:34 -05:00
declare desc="default plugin name"
local PLUGIN_GIT_URL="$1"
echo "$PLUGIN_GIT_URL" | awk -F '/' '{ print $NF }' | sed -e "s:.git::g" | sed 's:^dokku-::'
}