diff --git a/bin/compile b/bin/compile index 9bad3a286b809168591bbe46a62afe113c8c07b6..a086861b20ecc591031c72ce59fe7b1c025a5b36 100755 --- a/bin/compile +++ b/bin/compile @@ -15,7 +15,7 @@ BIN_DIR=$(cd $(dirname $0); pwd) # absolute path ROOT_DIR=$(dirname $BIN_DIR) BUILD_DIR=$1 CACHE_DIR=$2 -ENV_FILE=$3 +ENV_DIR=$3 CACHED_DIRS=".heroku" diff --git a/bin/utils b/bin/utils index 68608148ba00b4504fa1f9f9ba417d4595d3455c..a8af9fbfc2baffcb5e2e11a1f277b9e59c2f2c12 100755 --- a/bin/utils +++ b/bin/utils @@ -59,10 +59,22 @@ function deep-rm (){ find -H $1 -maxdepth 1 -name '.*' -a \( -type d -o -type f -o -type l \) -exec rm -fr '{}' \; } -function sub-env (){ - if [[ -f $ENV_FILE ]]; then - (export $(egrep -v '^(GIT_DIR|PYTHONHOME|PYTHONPATH|LD_LIBRARY_PATH|LIBRARY_PATH|PATH)' -f $ENV_FILE); $1) - else + +sub-env() { + + WHITELIST=${2:-''} + BLACKLIST=${3:-'^(GIT_DIR|PYTHONHOME|PYTHONPATH|LD_LIBRARY_PATH|LIBRARY_PATH|PATH)$'} + + ( + if [ -d "$ENV_DIR" ]; then + for e in $(ls $ENV_DIR); do + echo "$e" | grep -E "$WHITELIST" | grep -qvE "$BLACKLIST" && + export "$e=$(cat $ENV_DIR/$e)" + : + done + fi + $1 - fi -} + + ) +} \ No newline at end of file