From b3cecbaf2286ea6f460ac9a03845d7e0cc60094f Mon Sep 17 00:00:00 2001 From: anmiller Date: Fri, 17 Jan 2025 20:03:16 +0000 Subject: [PATCH] Improve Xtrace by hiding output of prompt commands --- bash/.bashrc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/bash/.bashrc b/bash/.bashrc index 18319d3..534c0c0 100644 --- a/bash/.bashrc +++ b/bash/.bashrc @@ -116,6 +116,23 @@ if [ -f "$HOME/.private_functions" ] && [ -r "$HOME/.private_functions" ]; then . "$HOME/.private_functions" fi +# Preserve the usefulness of set -x by attempting to hide everything that +# happens in prompt_command +preserve_xtrace() { + if grep -q "x" <<< $-; then + XTRACE_WAS_SET=1 + set +x + fi +} 2>/dev/null +preserve_xtrace_reset() { + if [ "${XTRACE_WAS_SET}" ]; then + set -x + unset XTRACE_WAS_SET + fi +} 2>/dev/null + +PROMPT_COMMAND="preserve_xtrace; $PROMPT_COMMAND; preserve_xtrace_reset" + if $(which direnv &> /dev/null); then eval "$(direnv hook bash)" fi