1 Test recursing into parent .autoenv.zsh files.
3 $ source $TESTDIR/setup.zsh || return 1
5 Setup env actions / output.
7 $ AUTOENV_LOOK_UPWARDS=1
9 Create env files in root dir.
11 $ echo 'echo ENTERED_root: PWD:${PWD:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t}' > .autoenv.zsh
12 $ echo 'echo LEFT_root: PWD:${PWD:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t}' > .autoenv_leave.zsh
13 $ test_autoenv_auth_env_files
15 Create env files in sub dir.
17 $ mkdir -p sub/sub2/sub3/sub4
19 ENTERED_root: PWD:sub from:source-parent-until.t to:sub
21 $ echo 'echo ENTERED_sub: PWD:${PWD:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t}' > .autoenv.zsh
22 $ echo 'echo LEFT_sub: PWD:${PWD:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t}' > .autoenv_leave.zsh
23 $ test_autoenv_auth_env_files
26 ENTERED_sub: PWD:sub2 from:sub to:sub2
27 $ echo 'echo ENTERED_sub2: PWD:${PWD:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t}' > .autoenv.zsh
28 $ echo 'echo LEFT_sub2: PWD:${PWD:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t}' > .autoenv_leave.zsh
29 $ test_autoenv_auth_env_files
34 # ENTERED_sub2: PWD:sub3 from:sub2 to:sub3
36 # LEFT_sub2: PWD:sub from:sub3 to:sub
39 Add sub/sub2/sub3/.autoenv.zsh file, with a call to autoenv_source_parent,
40 stopping at the parent dir.
42 $ echo "echo autoenv_source_parent_from_sub3:\nautoenv_source_parent ..\necho done_sub3\n" > sub2/sub3/.autoenv.zsh
43 $ test_autoenv_add_to_env sub2/sub3/.autoenv.zsh
45 autoenv_source_parent_from_sub3:
46 ENTERED_sub2: PWD:sub3 from:sub to:sub3
49 Look up to `../..` now.
52 LEFT_sub2: PWD:sub from:sub3 to:sub
53 $ echo "echo autoenv_source_parent_from_sub3:\nautoenv_source_parent ../..\necho done_sub3\n" >| sub2/sub3/.autoenv.zsh
54 $ test_autoenv_add_to_env sub2/sub3/.autoenv.zsh
56 autoenv_source_parent_from_sub3:
57 ENTERED_sub2: PWD:sub3 from:sub to:sub3
60 Remove intermediate .autoenv.zsh from sub2.
63 LEFT_sub2: PWD:sub from:sub3 to:sub
64 $ rm sub2/.autoenv.zsh
66 Should source "sub" for ../.. now.
68 $ echo "echo autoenv_source_parent_from_sub3:\nautoenv_source_parent ../..\necho done_sub3\n" >| sub2/sub3/.autoenv.zsh
69 $ test_autoenv_add_to_env sub2/sub3/.autoenv.zsh
71 autoenv_source_parent_from_sub3:
72 ENTERED_sub: PWD:sub3 from:sub to:sub3
75 Should source nothing for .. now.
78 $ echo "echo autoenv_source_parent_from_sub3:\nautoenv_source_parent ..\necho done_sub3\n" >| sub2/sub3/.autoenv.zsh
79 $ test_autoenv_add_to_env sub2/sub3/.autoenv.zsh
81 autoenv_source_parent_from_sub3:
84 Look up to "/" (default).
87 $ echo "echo autoenv_source_parent_from_sub3:\nautoenv_source_parent /\necho done_sub3\n" >| sub2/sub3/.autoenv.zsh
88 $ test_autoenv_add_to_env sub2/sub3/.autoenv.zsh
90 autoenv_source_parent_from_sub3:
91 ENTERED_sub: PWD:sub3 from:sub to:sub3
94 Handles dirs with spaces.
96 $ mkdir "dir with space"
97 $ echo "echo entered \$PWD\n" >| "dir with space/.autoenv.zsh"
98 $ test_autoenv_add_to_env "dir with space/.autoenv.zsh"
100 entered */dir with space (glob)
102 Handles dirs with spaces outside any root (should not hang).
104 $ cd $CRAMTMP || exit
107 $ mkdir "dir with space"
108 $ cd "dir with space"