#! /bin/zsh function dotenv () { regex="DOT_ENV\=(\w+)" if [[ $1 =~ $regex ]]; then env="${match[1]}" file_name=".env.${env}" if [[ -f $file_name ]]; then source_env $file_name return fi fi file_name=".env" source_env $file_name } function source_env() { source_specific_env ".env.clean" source_specific_env $1 } function source_specific_env() { if [[ -f $1 ]]; then export $(cat ${1} | grep -v "^#" | xargs) fi } autoload -Uz add-zsh-hook add-zsh-hook preexec dotenv