mirror of
https://github.com/dokku/dokku.git
synced 2025-12-29 00:25:08 +01:00
Depending on the execution path, the variables may not be set at the top-level. Closes #3328
103 lines
2.7 KiB
Bash
Executable File
103 lines
2.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
|
|
|
fn-plugin-property-delete() {
|
|
declare desc="delete a key from the property store for an app"
|
|
declare PLUGIN="$1" APP="$2" KEY="$3"
|
|
|
|
if [[ -z "$PLUGIN" ]] || [[ -z "$APP" ]] || [[ -z "$KEY" ]]; then
|
|
return 1
|
|
fi
|
|
|
|
rm -f "${DOKKU_LIB_ROOT}/config/${PLUGIN}/${APP}/${KEY}"
|
|
}
|
|
|
|
fn-plugin-property-destroy() {
|
|
declare desc="destroy the properties for an app"
|
|
declare PLUGIN="$1" APP="$2"
|
|
|
|
if [[ -z "$PLUGIN" ]] || [[ -z "$APP" ]]; then
|
|
return 1
|
|
fi
|
|
|
|
if [[ "$APP" == "_all_" ]]; then
|
|
rm -rf "${DOKKU_LIB_ROOT}/config/${PLUGIN}"
|
|
else
|
|
rm -rf "${DOKKU_LIB_ROOT}/config/${PLUGIN}/${APP}"
|
|
fi
|
|
}
|
|
|
|
fn-plugin-property-exists() {
|
|
declare desc="returns whether the property store has a value for an app"
|
|
declare PLUGIN="$1" APP="$2" KEY="$3" DEFAULT="$4"
|
|
local CONFIG_VALUE
|
|
|
|
if [[ -z "$PLUGIN" ]] || [[ -z "$APP" ]] || [[ -z "$KEY" ]]; then
|
|
return 1
|
|
fi
|
|
|
|
if [[ ! -f "${DOKKU_LIB_ROOT:?}/config/${PLUGIN}/${APP}/${KEY}" ]]; then
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
fn-plugin-property-get() {
|
|
declare desc="returns the property store value for an app"
|
|
declare PLUGIN="$1" APP="$2" KEY="$3" DEFAULT="$4"
|
|
local CONFIG_VALUE
|
|
|
|
if [[ -z "$PLUGIN" ]] || [[ -z "$APP" ]] || [[ -z "$KEY" ]]; then
|
|
return 1
|
|
fi
|
|
|
|
CONFIG_VALUE="$(fn-plugin-property-read "$PLUGIN" "$APP" "$KEY" || true)"
|
|
if [[ -z "$CONFIG_VALUE" ]]; then
|
|
CONFIG_VALUE="$DEFAULT"
|
|
fi
|
|
echo "$CONFIG_VALUE"
|
|
}
|
|
|
|
fn-plugin-property-setup() {
|
|
declare desc="creates the plugin config root"
|
|
declare PLUGIN="$1"
|
|
|
|
if [[ -z "$PLUGIN" ]]; then
|
|
return 1
|
|
fi
|
|
|
|
mkdir -p "${DOKKU_LIB_ROOT}/config/${PLUGIN}"
|
|
chmod 0755 "${DOKKU_LIB_ROOT}/config/${PLUGIN}"
|
|
|
|
local dokku_system_group=${DOKKU_SYSTEM_GROUP:="dokku"}
|
|
local dokku_system_user=${DOKKU_SYSTEM_USER:="dokku"}
|
|
chown "${dokku_system_user}:${dokku_system_group}" "${DOKKU_LIB_ROOT}/config/${PLUGIN}"
|
|
}
|
|
|
|
fn-plugin-property-read() {
|
|
declare desc="read a key from the property store for an app"
|
|
declare PLUGIN="$1" APP="$2" KEY="$3"
|
|
|
|
if [[ -z "$PLUGIN" ]] || [[ -z "$APP" ]] || [[ -z "$KEY" ]]; then
|
|
return 1
|
|
fi
|
|
|
|
if [[ ! -f "${DOKKU_LIB_ROOT:?}/config/${PLUGIN}/${APP}/${KEY}" ]]; then
|
|
return 1
|
|
fi
|
|
|
|
cat "${DOKKU_LIB_ROOT}/config/${PLUGIN}/${APP}/${KEY}"
|
|
}
|
|
|
|
fn-plugin-property-write() {
|
|
declare desc="read a key from the property store for an app"
|
|
declare PLUGIN="$1" APP="$2" KEY="$3" VALUE="$4"
|
|
|
|
if [[ -z "$PLUGIN" ]] || [[ -z "$APP" ]] || [[ -z "$KEY" ]]; then
|
|
return 1
|
|
fi
|
|
|
|
mkdir -p "${DOKKU_LIB_ROOT}/config/${PLUGIN}/${APP}"
|
|
echo "$VALUE" > "${DOKKU_LIB_ROOT}/config/${PLUGIN}/${APP}/${KEY}"
|
|
chmod 600 "${DOKKU_LIB_ROOT}/config/${PLUGIN}/${APP}/${KEY}"
|
|
}
|