autoenv.zsh | 1 + tests/_autoenv_utils.t | 2 +- tests/setup.zsh | 6 ++++-- diff --git a/autoenv.zsh b/autoenv.zsh index ee0daa0a47af18d0a659971135d42c27e339f190..4df3f53cb0f2a94623e01414f130ba8ca4eeb86f 100644 --- a/autoenv.zsh +++ b/autoenv.zsh @@ -194,6 +194,7 @@ _autoenv_authorize() { local env_file=${1:A} _autoenv_deauthorize $env_file + [[ -d ${AUTOENV_AUTH_FILE:h} ]] || mkdir -p ${AUTOENV_AUTH_FILE:h} _autoenv_hash_pair $env_file >>| $AUTOENV_AUTH_FILE } diff --git a/tests/_autoenv_utils.t b/tests/_autoenv_utils.t index ee5b306b43f57f3ef3e5ea57356b04a3843d7c04..06025b67827c3562296052ec21e0e004099e298b 100644 --- a/tests/_autoenv_utils.t +++ b/tests/_autoenv_utils.t @@ -21,7 +21,7 @@ Auth file is empty. $ cd ../.. - $ cat $AUTOENV_AUTH_FILE + $ ! [[ -f "$AUTOENV_AUTH_FILE" ]] || cat $AUTOENV_AUTH_FILE Failed authorization should keep the auth file empty. diff --git a/tests/setup.zsh b/tests/setup.zsh index 316074de972983fae62b2a4bd3c8d0cc55884f7e..78eb02e3a4c6a55dc82908e34184f13fd66b14c1 100644 --- a/tests/setup.zsh +++ b/tests/setup.zsh @@ -9,7 +9,7 @@ # Treat unset variables as errors. # Not handled in varstash yet. # setopt nounset -export AUTOENV_AUTH_FILE="$CRAMTMP/.autoenv_auth" +export AUTOENV_AUTH_FILE="$CRAMTMP/autoenv/.autoenv_auth" if [[ $AUTOENV_AUTH_FILE[0,4] != '/tmp' ]]; then echo "AUTOENV_AUTH_FILE is not in /tmp. Aborting." @@ -24,7 +24,9 @@ # Defined in .zshenv, e.g. tests/ZDOTDIR/.zshenv. $TEST_SOURCE_AUTOENV # Reset any authentication. -echo -n >| $AUTOENV_AUTH_FILE +if [[ -f $AUTOENV_AUTH_FILE ]]; then + echo -n >| $AUTOENV_AUTH_FILE +fi # Add file $1 (with optional hash $2) to authentication file. test_autoenv_add_to_env() {