before_script:
- "sudo apt-get install zsh"
install: "sudo pip install cram"
-script: "make test"
+script: "make test_full"
-.PHONY: itest test
+export ZDOTDIR=${PWD}/tests/ZDOTDIR
test:
- ZDOTDIR="${PWD}/tests" cram --shell=zsh -v tests
+ cram --shell=zsh -v tests
itest:
- ZDOTDIR="${PWD}/tests" cram -i --shell=zsh tests
+ cram -i --shell=zsh tests
+
+# Run tests with all ZDOTDIRs.
+test_full:
+ for i in $(wildcard tests/ZDOTDIR*); do \
+ echo "ZDOTDIR=$$i"; \
+ ZDOTDIR=${PWD}/$$i cram --shell=zsh -v tests; \
+ done
# Define targets for test files, with relative and abolute path.
# Use verbose output, which is useful with Vim's 'errorformat'.
$(_TESTS_REL_AND_ABS):
ZDOTDIR="${PWD}/tests" cram --shell=zsh -v $@
.PHONY: $(_TESTS_REL_AND_ABS)
+
+.PHONY: itest test
_autoenv_authorize() {
local env_file=${1:A}
_autoenv_deauthorize $env_file
- _autoenv_hash_pair $env_file >> $AUTOENV_ENV_FILENAME
+ _autoenv_hash_pair $env_file >>| $AUTOENV_ENV_FILENAME
}
# Deauthorize a given filename, by removing it from the auth file.
_autoenv_deauthorize() {
local env_file=${1:A}
if [[ -s $AUTOENV_ENV_FILENAME ]]; then
- echo "$(\grep -vF :${env_file}: $AUTOENV_ENV_FILENAME)" > $AUTOENV_ENV_FILENAME
+ echo "$(\grep -vF :${env_file}: $AUTOENV_ENV_FILENAME)" >| $AUTOENV_ENV_FILENAME
fi
}
--- /dev/null
+source ${ZDOTDIR}/../ZDOTDIR/.zshenv
+
+setopt noclobber
Lets set a simple .env action
- $ echo 'echo ENTERED' >> .env
+ $ echo 'echo ENTERED' > .env
Manually create auth file
$ mkdir sub
$ cd sub
- $ echo 'echo ENTERED' >> .env
- $ echo 'echo LEFT' >> .env.leave
+ $ echo 'echo ENTERED' > .env
+ $ echo 'echo LEFT' > .env.leave
Change to the directory.
Add sub/sub2/.env file.
- $ echo -e "echo autoenv_source_parent_from_sub2:\nautoenv_source_parent\necho done_sub2\n" > sub2/.env
+ $ echo -e "echo autoenv_source_parent_from_sub2:\nautoenv_source_parent\necho done_sub2\n" >| sub2/.env
$ test_autoenv_add_to_env sub2/.env
$ cd sub2
autoenv_source_parent_from_sub2:
First, let's answer "no".
- $ echo "echo NEW" > .env
+ $ echo "echo NEW" >| .env
$ _autoenv_ask_for_yes() { echo "no"; return 1 }
$ cd sub
autoenv_source_parent_from_sub:
[[ $AUTOENV_ENV_FILENAME[0,4] == '/tmp' ]] || return 1
# Reset any authentication.
-echo -n > $AUTOENV_ENV_FILENAME
+echo -n >| $AUTOENV_ENV_FILENAME
# Add file $1 (with optional hash $2) to authentication file.
test_autoenv_add_to_env() {
- _autoenv_hash_pair $1 ${2:-} >> $AUTOENV_ENV_FILENAME
+ _autoenv_hash_pair $1 ${2:-} >>| $AUTOENV_ENV_FILENAME
}
# Add enter and leave env files to authentication file.
$ unset VAR
$ cd sub
ENTER
- $ echo 'echo ENTER; autostash VAR=changed' > $AUTOENV_FILE_ENTER
- $ echo 'echo LEAVE; echo "no explicit call to autounstash"' > $AUTOENV_FILE_LEAVE
+ $ echo 'echo ENTER; autostash VAR=changed' >| $AUTOENV_FILE_ENTER
+ $ echo 'echo LEAVE; echo "no explicit call to autounstash"' >| $AUTOENV_FILE_LEAVE
$ test_autoenv_auth_env_files
$VAR is unset: