export ENV=${DIRENV_ENV:-dev}

## Set docker compose file to use based on environment
# if [[ "${ENV}" == "dev" || "${ENV}" == "demo" ]]; then
#     export COMPOSE_FILE="./containers/dev.compose.yml"
# elif [[ "${ENV}" == "prod" ]]; then
#     export COMPOSE_FILE="./containers/compose.yml"
# fi

## Unload direnv before launching tmux, avoid issues with
#  env vars in subshells when launching tmux with direnv activated
alias tmux='direnv exec / tmux'

function init_env() {
    local _env=$ENV
    echo "[DEBUG] init ENV: $_env"

    echo "[DEBUG] Create path: ./direnv/${_env}"
    mkdir -p ".direnv/${_env}"

    if [[ ! -f ".direnv/${_env}/.env" ]]; then
        echo "[DEBUG] Create file: .direnv/${_env}/.env"
        touch .direnv/${_env}/.env

        # {
            # echo "export ENV_VAR_NAME1=\"${ENV_VAR_NAME1}\"" >> .direnv/${_env}/.secrets
            # echo "export DYNACONF_VAR_NAME2=\"${ENV_VAR_NAME2}\"" >> .direnv/${_env}/.secrets
        # } >> ".direnv/${_env}/.env"
    fi

    if [[ ! -f ".direnv/${_env}/.secrets" ]]; then
        echo "[DEBUG] Create file: .direnv/${_env}/.secrets"
        touch .direnv/${_env}/.secrets

        # {
            # echo "export ENV_VAR_NAME1=\"${ENV_VAR_NAME1}\"" >> .direnv/${_env}/.secrets
            # echo "export DYNACONF_VAR_NAME2=\"${ENV_VAR_NAME2}\"" >> .direnv/${_env}/.secrets
        # }
    fi
}

function src_file() {
    local _file=$1

    if [[ -f "${_file}" ]]; then
        source "${_file}"
    fi
}

## Initialize .direnv/ & env files
init_env

## Source env file
if [[ "$ENV" ]]; then
    src_file ".direnv/${ENV}/.env"
    src_file ".direnv/${ENV}/.secrets"
else
    src_file ".direnv/dev/.secrets"
    src_file ".direnv/dev/.secrets"
fi

## Run a git fetch if in a git repo
if on_git_branch; then
    echo && git status --short --branch &&
    echo && git fetch --verbose
fi
