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

config_docker_args() {
  declare desc="config docker-args plugin trigger"
  local trigger="$0 config_docker_args"
  local STDIN=$(cat); local APP="$1"; local IMAGE_TAG="$2"; local IMAGE=$(get_deploying_app_image_name "$APP" "$IMAGE_TAG")
  verify_app_name "$APP"

  if ! is_image_herokuish_based "$IMAGE"; then
    shopt -s extglob
    local ENV_ARGS
    declare -A ENV_ARGS
    for key in $(config_keys global); do
      VAR="$(config_get --global "$key")"
      printf -vVAR '%q' "${VAR%%*( )}"
      ENV_ARGS[$key]="$VAR"
    done
    for key in $(config_keys app "$APP"); do
      VAR="$(config_get "$APP" "$key")"
      printf -vVAR '%q' "${VAR%%*( )}"
      ENV_ARGS[$key]="$VAR"
    done
    shopt -u extglob
    local ALL_ENV_ARGS
    declare -a ALL_ENV_ARGS
    for key in "${!ENV_ARGS[@]}"; do
      local ARG="$key=${ENV_ARGS[$key]}"
      ALL_ENV_ARGS+=("--env")
      ALL_ENV_ARGS+=("$ARG")
    done

    echo -n "$STDIN ${ALL_ENV_ARGS[@]}"
  else
    echo -n "$STDIN"
  fi
}

config_docker_args "$@"
