Ignore variables used by direnv

All variables matching DIRENV_* are excluded to not influence direnv behavior.
master
0xee 2019-11-27 15:05:32 +01:00
parent ac83f17b77
commit f6fc817e84
1 changed files with 13 additions and 9 deletions

View File

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