diff --git a/direnv-cache b/direnv-cache index f0a4972..6350657 100755 --- a/direnv-cache +++ b/direnv-cache @@ -32,22 +32,26 @@ diffEnvs() { while IFS= read -r -d '' line; do name=$(tr -d '\0' <<<"$line" | head -n1 | cut -f1 -d'=') - if ! getByName "$name" "$new" >/dev/null; then - echo "export -n '${name}'" + if ! [[ "$name" = DIRENV_* ]]; then + if ! getByName "$name" "$new" >/dev/null; then + echo "export -n '${name}'" + fi fi done <"$old" while IFS= read -rd $'\0' line; do name=$(tr -d '\0' <<<"$line" | head -n1 | cut -f1 -d'=') - if getByName "$name" "$old" >/dev/null; then - # found in old env, check if values match - if ! grep -z "^${line}\$" "$old" >/dev/null; then - # variable has changed + if ! [[ "$name" = DIRENV_* ]]; then + if getByName "$name" "$old" >/dev/null; then + # found in old env, check if values match + if ! grep -z "^${line}\$" "$old" >/dev/null; then + # variable has changed + echo "export ${line@Q}" + fi + else + # variable is new echo "export ${line@Q}" fi - else - # variable is new - echo "export ${line@Q}" fi done <"$new" }