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!(Xonsh, "xonsh.txt");
|
||||||
make_template!(Zsh, "zsh.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(feature = "nix-dev")]
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,7 @@ function __zoxide_doctor() {
|
||||||
|
|
||||||
{%- else %}
|
{%- else %}
|
||||||
[[ ${_ZO_DOCTOR:-1} -ne 0 ]] || return 0
|
[[ ${_ZO_DOCTOR:-1} -ne 0 ]] || return 0
|
||||||
|
[[ $- == *i* ]] || return 0
|
||||||
|
|
||||||
{%- if hook == InitHook::Prompt %}
|
{%- if hook == InitHook::Prompt %}
|
||||||
[[ ${precmd_functions[(Ie)__zoxide_hook]:-} -eq 0 ]] || return 0
|
[[ ${precmd_functions[(Ie)__zoxide_hook]:-} -eq 0 ]] || return 0
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue