fix: skip zsh doctor in non-interactive shells
This commit is contained in:
parent
cff57b7734
commit
281d3d5ef1
16
src/shell.rs
16
src/shell.rs
|
|
@ -33,6 +33,22 @@ make_template!(Tcsh, "tcsh.txt");
|
|||
make_template!(Xonsh, "xonsh.txt");
|
||||
make_template!(Zsh, "zsh.txt");
|
||||
|
||||
#[cfg(test)]
|
||||
mod render_tests {
|
||||
use askama::Template;
|
||||
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn zsh_doctor_skips_non_interactive_shells() {
|
||||
let opts =
|
||||
Opts { cmd: Some("z"), hook: InitHook::Prompt, echo: false, resolve_symlinks: false };
|
||||
let source = Zsh(&opts).render().unwrap();
|
||||
|
||||
assert!(source.contains("[[ $- == *i* ]] || return 0"));
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "nix-dev")]
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ function __zoxide_doctor() {
|
|||
|
||||
{%- else %}
|
||||
[[ ${_ZO_DOCTOR:-1} -ne 0 ]] || return 0
|
||||
[[ $- == *i* ]] || return 0
|
||||
|
||||
{%- if hook == InitHook::Prompt %}
|
||||
[[ ${precmd_functions[(Ie)__zoxide_hook]:-} -eq 0 ]] || return 0
|
||||
|
|
|
|||
Loading…
Reference in New Issue