From 54d732ae96a034d62989610ca660f6d5d5c5df76 Mon Sep 17 00:00:00 2001 From: Ajeet D'Souza <98ajeet@gmail.com> Date: Thu, 9 Jan 2025 04:12:23 +0530 Subject: [PATCH] bash doctor --- templates/bash.txt | 27 +++++++++++++++++++++++++-- templates/zsh.txt | 2 +- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/templates/bash.txt b/templates/bash.txt index 8a4ba47..f406642 100644 --- a/templates/bash.txt +++ b/templates/bash.txt @@ -62,6 +62,28 @@ fi {% endif -%} +# Report common issues. +function __zoxide_doctor() { +{%- if hook == InitHook::None %} + return 0 + +{%- else %} + [[ ${_ZO_DOCTOR:-1} -ne 0 ]] || return 0 + [[ ${PROMPT_COMMAND:=} != *'__zoxide_hook'* ]] || return 0 + + _ZO_DOCTOR=0 + \builtin printf '%s\n' \ + 'zoxide: detected a possible configuration issue.' \ + 'Please ensure that zoxide is initialized right at the end of your shell configuration file (usually ~/.bashrc).' \ + '' \ + 'If the issue persists, consider filing an issue at:' \ + 'https://github.com/ajeetdsouza/zoxide/issues' \ + '' \ + 'Disable this message by setting _ZO_DOCTOR=0.' \ + '' >&2 +{%- endif %} +} + {{ section }} # When using zoxide with --no-cmd, alias these internal functions as desired. # @@ -70,7 +92,7 @@ __zoxide_z_prefix='z#' # Jump to a directory using only keywords. function __zoxide_z() { - # shellcheck disable=SC2199 + __zoxide_doctor if [[ $# -eq 0 ]]; then __zoxide_cd ~ elif [[ $# -eq 1 && $1 == '-' ]]; then @@ -93,6 +115,7 @@ function __zoxide_z() { # Jump to a directory using interactive search. function __zoxide_zi() { + __zoxide_doctor \builtin local result result="$(\command zoxide query --interactive -- "$@")" && __zoxide_cd "${result}" } @@ -154,6 +177,6 @@ fi {%- endmatch %} {{ section }} -# To initialize zoxide, add this to your configuration (usually ~/.bashrc): +# To initialize zoxide, add this to your shell configuration file (usually ~/.bashrc): # # eval "$(zoxide init bash)" diff --git a/templates/zsh.txt b/templates/zsh.txt index ff3cbba..5d95407 100644 --- a/templates/zsh.txt +++ b/templates/zsh.txt @@ -69,7 +69,7 @@ function __zoxide_doctor() { 'Please ensure that zoxide is initialized right at the end of your shell configuration file (usually ~/.zshrc).' \ '' \ 'If the issue persists, consider filing an issue at:' \ - 'https://github.com/ajeetdsouza/zoxide/issues.' \ + 'https://github.com/ajeetdsouza/zoxide/issues' \ '' \ 'Disable this message by setting _ZO_DOCTOR=0.' \ '' >&2