Remove linked app from links file when destroying app

This commit is contained in:
Loïc Guitaut
2015-09-29 20:06:53 +02:00
parent 78314ef8ad
commit bb7d44f39e
7 changed files with 62 additions and 6 deletions

View File

@@ -257,18 +257,13 @@ service_unlink() {
local SERVICE="$1"
local SERVICE_URL=$(service_url "$SERVICE")
local SERVICE_NAME=$(get_service_name "$SERVICE")
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
local EXISTING_CONFIG=$(dokku config "$APP")
local DATABASE_NAME=$(get_database_name "$SERVICE")
local SERVICE_ALIAS=$(service_alias "$SERVICE")
local LINK=($(echo "$EXISTING_CONFIG" | grep "$PLUGIN_SCHEME://.*/$DATABASE_NAME" | cut -d: -f1)) || true
local LINKS_FILE="$SERVICE_ROOT/LINKS"
[[ -z ${LINK[*]} ]] && dokku_log_fail "Not linked to app $APP"
mkdir -p "$SERVICE_ROOT" || dokku_log_fail "Unable to create service directory"
touch "$LINKS_FILE"
sed -i "/^$APP\$/d" "$LINKS_FILE"
sort "$LINKS_FILE" -u -o "$LINKS_FILE"
remove_from_links_file "$SERVICE" "$APP"
dokku docker-options:remove "$APP" build,deploy,run "--link $SERVICE_NAME:$SERVICE_ALIAS"
dokku config:unset "$APP" "${LINK[*]}"
@@ -343,3 +338,15 @@ promote() {
NEW_CONFIG_VARS+="$PLUGIN_DEFAULT_CONFIG_VAR=$PROMOTE_URL"
dokku config:set "$APP" $NEW_CONFIG_VARS
}
remove_from_links_file() {
local SERVICE="$1"
local APP="$2"
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
local LINKS_FILE="$SERVICE_ROOT/LINKS"
mkdir -p "$SERVICE_ROOT" || dokku_log_fail "Unable to create service directory"
touch "$LINKS_FILE"
sed -i "/^$APP\$/d" "$LINKS_FILE"
sort "$LINKS_FILE" -u -o "$LINKS_FILE"
}