#!/usr/bin/env bash
set -eo pipefail
[[ $DOKKU_TRACE ]] && set -x
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions"
source "$PLUGIN_AVAILABLE_PATH/config/functions"

trigger-git-install() {
  declare desc="installs the git plugin"
  declare trigger="install"

  mkdir -p "${DOKKU_LIB_ROOT}/data/git"
  chown -R "${DOKKU_SYSTEM_USER}:${DOKKU_SYSTEM_GROUP}" "${DOKKU_LIB_ROOT}/data/git"

  fn-plugin-property-setup "git"
  migrate_git_vars_0_12_0 "$@"
}

migrate_git_vars_0_12_0() {
  declare desc="migrates git config variables from 0.11.x"
  local DOKKU_DEPLOY_BRANCH app

  DOKKU_DEPLOY_BRANCH=$(config_get --global DOKKU_DEPLOY_BRANCH || true)
  if [[ -n "$DOKKU_DEPLOY_BRANCH" ]]; then
    fn-plugin-property-write "git" --global "deploy-branch" "$DOKKU_DEPLOY_BRANCH"
    DOKKU_QUIET_OUTPUT=1 config_unset --global DOKKU_DEPLOY_BRANCH || true
  fi

  for app in $(dokku_apps "false" 2>/dev/null); do
    DOKKU_DEPLOY_BRANCH=$(config_get "$app" DOKKU_DEPLOY_BRANCH || true)
    if [[ -n "$DOKKU_DEPLOY_BRANCH" ]]; then
      fn-plugin-property-write "git" "$app" "deploy-branch" "$DOKKU_DEPLOY_BRANCH"
      DOKKU_QUIET_OUTPUT=1 config_unset --no-restart "$app" DOKKU_DEPLOY_BRANCH || true
    fi
  done
}

trigger-git-install "$@"
