#!/usr/bin/env bash

__dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
env_file=${__dir}/../.env
env_example_file=${__dir}/../.env.example

function main() {
  set -e

  add_new_env_vars
}

function add_new_env_vars() {
  # create .env and set perms if it does not exist
  [ ! -f "${env_file}" ] && {
    touch "${env_file}"
    chmod 0600 "${env_file}"
  }

  grep -Ev '^\s*#' "${env_example_file}" | {
    while IFS= read -r var; do
      key="${var%%=*}"        # get var key
      var=$(eval echo "$var") # generate dynamic values

      # If .env doesn't contain this env key, add it
      if ! grep -qLE "^$key=" "${env_file}"; then
        echo "Adding $key to .env"
        echo "$var" >>"${env_file}"
      fi
    done
  }
}

main
