1
0
mirror of https://github.com/Tarrasch/zsh-autoenv.git synced 2024-11-10 03:20:59 +02:00
zsh-autoenv/tests/setup.zsh
Daniel Hahler 51c7421f10
_autoenv_hash_pair: do not use a subshell (#81)
As a side-effect this should fix
https://github.com/Tarrasch/zsh-autoenv/issues/39 in case it was still
an issue after all.
2017-12-15 15:59:11 +01:00

45 lines
1.1 KiB
Bash

# Setup for tests.
#
# It returns 1 in case of errors, and no tests should be run then!
#
# 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_AUTH_FILE="$CRAMTMP/autoenv/.autoenv_auth"
# Abort this setup script on any error.
_save_errexit=${options[errexit]}
set -e
# Defined in .zshenv, e.g. tests/ZDOTDIR/.zshenv.
$TEST_SOURCE_AUTOENV
# Reset any authentication.
if [[ -f $AUTOENV_AUTH_FILE ]]; then
echo -n >| $AUTOENV_AUTH_FILE
fi
# Add file ($1), version ($2), and optional hash ($3) to authentication file.
test_autoenv_add_to_env() {
[[ -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() {
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.
options[errexit]=$_save_errexit
unset _save_errexit