#!/usr/bin/env bash
load_dotenv() {
local env_file=$1
[[ -n "${env_file}" && -f "${env_file}" ]] || return 0
local line key value
while IFS= read -r line || [[ -n "${line}" ]]; do
[[ "${line}" =~ ^[[:space:]]*# ]] && continue
[[ "${line}" =~ ^[[:space:]]*$ ]] && continue
line="${line#"${line%%[![:space:]]*}"}"
line="${line%"${line##*[![:space:]]}"}"
[[ "${line}" != *"="* ]] && continue
key="${line%%=*}"
value="${line#*=}"
key="${key#"${key%%[![:space:]]*}"}"
key="${key%"${key##*[![:space:]]}"}"
value="${value#"${value%%[![:space:]]*}"}"
value="${value%"${value##*[![:space:]]}"}"
if [[ "${value}" == \"*\" ]]; then
value="${value:1:${#value}-2}"
elif [[ "${value}" == \'*\' ]]; then
value="${value:1:${#value}-2}"
fi
export "${key}=${value}"
done < "${env_file}"
}