#!/bin/bash -e
# createAutogeneratedEnv.sh
#
# Create autogeneratedEnv file to pass variables from .env file, computed variables and variables from Jenkins

AUTOGENERATED_ENV_FILE_PATH="./src/generated/env.json"
DOT_ENV_FILE_PATH=".env"
VARIABLES=(
    "PROD_GRAPHQL_BASE"
    "PROD_SEGMENT_IOS_WRITE_KEY"
    "PROD_SEGMENT_ANDROID_WRITE_KEY"
    "PROD_SENTRY_DSN"
    "PROD_LOG_TO_SENTRY"
    "PROD_CODE_PUSH_ENABLED"
    "PROD_CODE_PUSH_ANDROID_DEPLOYMENT_KEY"
    "PROD_CODE_PUSH_IOS_DEPLOYMENT_KEY"
    "PROD_DATADOG_ENABLED"
    "PROD_DATADOG_CLIENT_TOKEN"
    "PROD_DATADOG_APPLICATION_ID"
    "QA_GRAPHQL_BASE"
    "QA_SEGMENT_IOS_WRITE_KEY"
    "QA_SEGMENT_ANDROID_WRITE_KEY"
    "QA_SENTRY_DSN"
    "QA_LOG_TO_SENTRY"
    "QA_CODE_PUSH_ENABLED"
    "QA_CODE_PUSH_ANDROID_DEPLOYMENT_KEY"
    "QA_CODE_PUSH_IOS_DEPLOYMENT_KEY"
    "QA_DATADOG_ENABLED"
    "QA_DATADOG_CLIENT_TOKEN"
    "QA_DATADOG_APPLICATION_ID"
    "PROD_DEBUGGING_SCOPES"
    "QA_DEBUGGING_SCOPES"
    "BUNDLE_VERSION_NAME"
)

rm -f $AUTOGENERATED_ENV_FILE_PATH
mkdir -p ${AUTOGENERATED_ENV_FILE_PATH%/*}
touch $AUTOGENERATED_ENV_FILE_PATH

[[ -f $DOT_ENV_FILE_PATH ]] && source $DOT_ENV_FILE_PATH

export BUNDLE_VERSION_NAME=$(./scripts/bundleVersion.sh)

echo "{" >> $AUTOGENERATED_ENV_FILE_PATH
for ((i = 0; i < ${#VARIABLES[@]}; i++)); do
    KEY=${VARIABLES[$i]}
    VALUE="${!KEY}"
    SUFFIX=","
    if [[ $(( $i + 1 )) = ${#VARIABLES[@]} ]]
    then
        SUFFIX=""
    fi
    LINE="   \"$KEY\": \"$VALUE\"$SUFFIX"
    echo "$LINE" >> $AUTOGENERATED_ENV_FILE_PATH
done
echo "}" >> $AUTOGENERATED_ENV_FILE_PATH
