#
# It returns 1 in case of errors, and no tests should be run then!
#
-# Ensure we have our mocked out AUTOENV_ENV_FILENAME
+# Ensure we have our mocked out AUTOENV_AUTH_FILE
# (via .zshenv).
# Treat unset variables as errors.
# Not handled in varstash yet.
# setopt nounset
-export AUTOENV_ENV_FILENAME="$CRAMTMP/.env_auth"
-
-if [[ $AUTOENV_ENV_FILENAME[0,4] != '/tmp' ]]; then
- echo "AUTOENV_ENV_FILENAME is not in /tmp. Aborting."
- return 1
-fi
+export AUTOENV_AUTH_FILE="$CRAMTMP/autoenv/.autoenv_auth"
# Abort this setup script on any error.
_save_errexit=${options[errexit]}
$TEST_SOURCE_AUTOENV
# Reset any authentication.
-echo -n >| $AUTOENV_ENV_FILENAME
+if [[ -f $AUTOENV_AUTH_FILE ]]; then
+ echo -n >| $AUTOENV_AUTH_FILE
+fi
-# Add file $1 (with optional hash $2) to authentication file.
+# Add file ($1), version ($2), and optional hash ($3) to authentication file.
test_autoenv_add_to_env() {
- _autoenv_hash_pair $1 ${2:-} >>| $AUTOENV_ENV_FILENAME
+ [[ -d ${AUTOENV_AUTH_FILE:h} ]] || mkdir -p ${AUTOENV_AUTH_FILE:h}
+ {
+ local ret_pair
+ _autoenv_hash_pair $1 1 ${2:-} && echo $ret_pair
+ } >>| $AUTOENV_AUTH_FILE
}
# Add enter and leave env files to authentication file.
test_autoenv_auth_env_files() {
- test_autoenv_add_to_env $PWD/$AUTOENV_FILE_ENTER
- test_autoenv_add_to_env $PWD/$AUTOENV_FILE_LEAVE
+ local dir=${1:-$PWD}
+ test_autoenv_add_to_env $dir/$AUTOENV_FILE_ENTER
+ test_autoenv_add_to_env $dir/$AUTOENV_FILE_LEAVE
}
# Now keep on going on errors again.