&& _autoenv_check_authorized_env_file $parent_env_file; then
local parent_env_dir=${parent_env_file:A:h}
+
+ _autoenv_stack_entered_add $parent_env_file
+
_autoenv_source $parent_env_file enter $parent_env_dir
fi
}
local env_file=$1
# Remove any existing entry.
- _autoenv_stack_entered[$_autoenv_stack_entered[(i)$1]]=()
+ _autoenv_stack_entered_remove $env_file
# Append it to the stack, and remember its mtime.
_autoenv_stack_entered+=($env_file)
# Remove an entry from the stack.
_autoenv_stack_entered_remove() {
local env_file=$1
- _autoenv_stack_entered=(${_autoenv_stack_entered#$env_file})
+ _autoenv_stack_entered[$_autoenv_stack_entered[(i)$env_file]]=()
_autoenv_stack_entered_mtime[$env_file]=
}
if _autoenv_check_authorized_env_file $env_file_leave; then
_autoenv_source $env_file_leave leave $prev_dir
fi
- _autoenv_stack_entered_remove $prev_dir
+ _autoenv_stack_entered_remove $prev_file
fi
done
fi
$ _autoenv_stack_entered_contains not-added
[1]
+Test removing.
+
+ $ _autoenv_stack_entered_remove sub
+ $ echo ${_autoenv_stack_entered}
+ sub/sub2 non-existing sub/file
+
done_sub2
Go to root.
+This should not trigger the enter event, because it was handled via
+autoenv_source_parent already.
$ cd ../..
LEFT_sub: PWD:sub from:sub2 to:recurse-upwards.t
- ENTERED_root: PWD:recurse-upwards.t from:sub2 to:recurse-upwards.t
Changing the root .env should trigger re-authentication via autoenv_source_parent.