# HG changeset patch # User Jeff Hammel # Date 1524072685 25200 # Node ID c3a87bd4048256b56d99b137d48afc5367d7770d # Parent af998083be848daced2a9e2704729a862615fccd simple environment diff -r af998083be84 -r c3a87bd40482 bin/simpleenv.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/simpleenv.sh Wed Apr 18 10:31:25 2018 -0700 @@ -0,0 +1,37 @@ +# source it + +export_var() { + if [[ "$#" != "2" ]] + then + echo "Must be called with two arguments" + return 1 + fi + # https://serverfault.com/questions/7503/how-to-determine-if-a-bash-variable-is-empty/382740#382740 + local KEY=$1 + local VALUE="${!KEY}" + if [[ -n "${!KEY+set}" ]]; + then + _OLD_VARS+=( "${KEY}" ) + _OLD_VALS+=( "${VALUE}" ) + else + _OLD_UNSET+=( "${KEY}" ) + fi + export "${1}=${2}" +} + +export_var BROWSER firefox + +deactivate() { + local index=0 + for key in "${_OLD_VARS[@]}" + do + local value="${_OLD_VALS[$index]}" + export "$key=$value" + index=$((index+1)) + done + for var in "${_OLD_UNSET[@]}" + do + unset "${var}" + done + unset deactivate +}