Improve Xtrace by hiding output of prompt commands

This commit is contained in:
anmiller 2025-01-17 20:03:16 +00:00
parent f72d1050d3
commit b3cecbaf22

View File

@ -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