inz

env.bash (raw)

  1. #!bash
  2.  
  3. __update_env () {
  4. local d="`pwd`"
  5. local envs=()
  6. local home=0
  7. while ! test -z "$d"; do
  8. if [ "$d" = "$HOME" ]; then
  9. home=1
  10. fi
  11. if [ -O "$d/.env" ]; then
  12. envs[${#envs[@]}]="$d/.env";
  13. fi
  14. d="${d%/*}"
  15. done
  16. [ "$home" -eq 0 ] &&
  17. [ -O "$HOME/.env" ] &&
  18. envs[${#envs[@]}]="$HOME/.env";
  19. [ "${envs[0]}" = "$__PREV_ENV" ] && return
  20. export __PREV_ENV="${envs[0]}"
  21. for ((i = ${#envs[@]}; i > 0; i--)); do
  22. source "${envs[$i - 1]}"
  23. done
  24. }
  25.  
  26. PROMPT_COMMAND="$PROMPT_COMMAND"'__update_env;'
  27.