#!/bin/bash

# --------- API ENV ---------
echo 'Select API environment.'
cd ./environments/api

# Display file names
n=0
for envFile in ./.*.env
do
    n=$((n+1))
    printf "[%s] %s\n" "$n" "$envFile"
    eval "envFile${n}=\$envFile"
done

# Validate loop
if [ "$n" -eq 0 ]
then
    echo >&2 No environment selected.
    exit
fi

# Save selection number
# printf 'Enter API file index (1 to %s): ' "$n"
read -r num
num=$(printf '%s\n' "$num" | tr -dc '[:digit:]')

# Validate selection and save file name
if [ "$num" -le 0 ] || [ "$num" -gt "$n" ]
then
    echo >&2 Wrong selection.
    exit 1
else
    eval "API_FILE=\$envFile${num}"
    # echo Selected API is "$API_FILE"
fi


# --------- MIDDLEWARE ENV ---------
echo 'Select middleware environment.'
cd ../middleware

# Display file names
n=0
for envFile in ./.*.env
do
    n=$((n+1))
    printf "[%s] %s\n" "$n" "$envFile"
    eval "envFile${n}=\$envFile"
done

# Validate loop
if [ "$n" -eq 0 ]
then
    echo >&2 No environment selected.
    exit
fi

# Save selection number
# printf 'Enter middleware file index (1 to %s): ' "$n"
read -r num
num=$(printf '%s\n' "$num" | tr -dc '[:digit:]')

# Validate selection and save file name
if [ "$num" -le 0 ] || [ "$num" -gt "$n" ]
then
    echo >&2 Wrong selection.
    exit 1
else
    eval "MIDDLEWARE_FILE=\$envFile${num}"
    # echo Selected ERP is "$MIDDLEWARE_FILE"
fi


# --------- STORAGE ENV ---------
echo 'Select storage environment.'
cd ../storage

# Display file names
n=0
for envFile in ./.*.env
do
    n=$((n+1))
    printf "[%s] %s\n" "$n" "$envFile"
    eval "envFile${n}=\$envFile"
done

# Validate loop
if [ "$n" -eq 0 ]
then
    echo >&2 No environment selected.
    exit
fi

# Save selection number
# printf 'Enter storage file index (1 to %s): ' "$n"
read -r num
num=$(printf '%s\n' "$num" | tr -dc '[:digit:]')

# Validate selection and save file name
if [ "$num" -le 0 ] || [ "$num" -gt "$n" ]
then
    echo >&2 Wrong selection.
    exit 1
else
    eval "STORAGE_FILE=\$envFile${num}"
    # echo Selected ERP is "$STORAGE_FILE"
fi

cd ../..

# convert selected files to only file names
API_FILE=$(echo $API_FILE | sed 's/^...//' | sed 's/....$//')
MIDDLEWARE_FILE=$(echo $MIDDLEWARE_FILE | sed 's/^...//' | sed 's/....$//')
STORAGE_FILE=$(echo $STORAGE_FILE | sed 's/^...//' | sed 's/....$//')

echo Selected API is "$API_FILE"
echo Selected Middleware is "$MIDDLEWARE_FILE"
echo Selected Storage is "$STORAGE_FILE"

cat environments/api/.$API_FILE.env > .env && echo '\r\r' >> .env
cat environments/middleware/.$MIDDLEWARE_FILE.env >> .env && echo '\r\r' >> .env
cat environments/storage/.$STORAGE_FILE.env >> .env && echo '\r\r' >> .env

npm run dev