- $ source $TESTDIR/setup.sh
+ $ source $TESTDIR/setup.zsh || return 1
-Lets set a simple .env action
+Lets set a simple .autoenv.zsh action
$ mkdir sub
$ cd sub
- $ echo 'echo ENTERED' >> .env
- $ echo 'echo LEFT' >> .env.leave
+ $ echo 'echo ENTERED' > .autoenv.zsh
+ $ echo 'echo LEFT' > .autoenv_leave.zsh
Change to the directory.
- $ _dotenv_read_answer() { echo 'y' }
+ $ _autoenv_ask_for_yes() { echo "yes"; return 0 }
$ cd .
- Attempting to load unauthorized env file: /tmp/cramtests-??????/leave.t/sub/.env (glob)
+ Attempting to load unauthorized env file!
+ -* /tmp/cramtests-*/leave.t/sub/.autoenv.zsh (glob)
**********************************************
**********************************************
- Would you like to authorize it? [y/N]
+ Would you like to authorize it? (type 'yes') yes
ENTERED
Leave the directory and answer "no".
- $ _dotenv_read_answer() { echo 'n' }
+ $ _autoenv_ask_for_yes() { echo "no"; return 1 }
$ cd ..
- Attempting to load unauthorized env file: /tmp/cramtests-??????/leave.t/sub/.env.leave (glob)
+ Attempting to load unauthorized env file!
+ -* /tmp/cramtests-*/leave.t/sub/.autoenv_leave.zsh (glob)
**********************************************
**********************************************
- Would you like to authorize it? [y/N]
+ Would you like to authorize it? (type 'yes') no
$ cd sub
ENTERED
- $ _dotenv_read_answer() { echo 'y' }
+ $ _autoenv_ask_for_yes() { echo "yes"; return 0 }
$ cd ..
- Attempting to load unauthorized env file: /tmp/cramtests-??????/leave.t/sub/.env.leave (glob)
+ Attempting to load unauthorized env file!
+ -* /tmp/cramtests-*/leave.t/sub/.autoenv_leave.zsh (glob)
**********************************************
**********************************************
- Would you like to authorize it? [y/N]
+ Would you like to authorize it? (type 'yes') yes
LEFT
Now check with subdirs, looking upwards.
- $ DOTENV_LOOK_UPWARDS=1
+ $ AUTOENV_LOOK_UPWARDS=1
$ mkdir sub/child
$ cd sub/child
ENTERED
Now check with subdirs, not looking at parent dirs.
- $ DOTENV_LOOK_UPWARDS=0
+ $ AUTOENV_LOOK_UPWARDS=0
$ cd sub/child
$ cd ..
ENTERED
LEFT
-Test that .env is sourced only once with DOTENV_HANDLE_LEAVE=0.
+Test that .autoenv.zsh is sourced only once with AUTOENV_HANDLE_LEAVE=0.
- $ unset _dotenv_stack_entered
- $ DOTENV_HANDLE_LEAVE=0
+ $ unset _autoenv_stack_entered
+ $ AUTOENV_HANDLE_LEAVE=0
$ cd sub
ENTERED
$ cd ..
$ cd sub
+
+
+Test that "leave" is not triggered when entering an outside dir via symlink.
+
+ $ AUTOENV_HANDLE_LEAVE=1
+ $ cd ..
+ LEFT
+ $ mkdir outside
+ $ cd outside
+ $ echo 'echo ENTERED outside: PWD:${PWD:t} pwd:${${"$(pwd)"}:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t} event:${autoenv_event}' > .autoenv.zsh
+ $ echo 'echo LEFT outside: PWD:${PWD:t} pwd:${${"$(pwd)"}:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t} event:${autoenv_event}' > .autoenv_leave.zsh
+ $ echo 'echo LEFT: autoenv_env_file:${autoenv_env_file}' >> .autoenv_leave.zsh
+ $ test_autoenv_auth_env_files
+
+ $ cd ..
+ $ ln -s ../outside sub/symlink
+ $ cd sub
+ ENTERED
+ $ cd symlink
+ ENTERED outside: PWD:symlink pwd:symlink from:sub to:symlink event:enter
+
+ $ cd ../..
+ LEFT
+ LEFT outside: PWD:leave.t pwd:leave.t from:symlink to:leave.t event:leave
+ LEFT: autoenv_env_file:*/leave.t/sub/symlink/.autoenv_leave.zsh (glob)
+ $ cd sub/symlink
+ ENTERED outside: PWD:symlink pwd:symlink from:leave.t to:symlink event:enter
+
+$autoenv_env_file should not be exported.
+
+ $ echo -n $autoenv_env_file
+
+$autoenv_env_file should be reset when leaving.
+
+ $ echo -n $autoenv_env_file
+ $ cd ../..
+ LEFT outside: PWD:leave.t pwd:leave.t from:symlink to:leave.t event:leave
+ LEFT: autoenv_env_file:*/leave.t/sub/symlink/.autoenv_leave.zsh (glob)
+ $ echo ${autoenv_env_file:-empty}
+ empty