fix: guard success messages on command exit status

- Source x-path instead of capturing empty stdout via command substitution
- Validate --dry-run argument in cleanup script, reject unknown flags
- Gate success messages on preceding command's exit status with &&
- Applies to dfm (fmt, reset_nvim, shfmt) and install scripts
  (fonts, gh-extensions, python-packages, shellspec, z)
This commit is contained in:
2026-03-18 12:33:00 +02:00
parent 9df2996a5d
commit e918a41d75
8 changed files with 39 additions and 23 deletions

View File

@@ -12,7 +12,15 @@ fi
# shellcheck source=shared.sh
source "$DOTFILES/config/shared.sh"
DRY_RUN="${1:-}"
DRY_RUN=""
if [[ $# -gt 0 ]]; then
if [[ "$1" = "--dry-run" ]]; then
DRY_RUN="--dry-run"
else
echo "Usage: $0 [--dry-run]" >&2
exit 1
fi
fi
remove_dir()
{

View File

@@ -51,8 +51,9 @@ install_fonts()
{
msgr run "Starting to install NerdFonts..."
# shellcheck disable=SC2048,SC2086
./install.sh -q -s ${fonts[*]}
msgr run_done "Done"
# shellcheck disable=SC2086
./install.sh -q -s ${fonts[*]} \
&& msgr run_done "Done"
return 0
}

View File

@@ -51,8 +51,8 @@ install_extensions()
# Install all GitHub CLI extensions
main()
{
install_extensions
msgr run_done "Done"
install_extensions \
&& msgr run_done "Done"
return 0
}

View File

@@ -35,5 +35,5 @@ install_libraries()
return 0
}
install_libraries
msgr yay "Python library installations complete"
install_libraries \
&& msgr yay "Python library installations complete"

View File

@@ -23,8 +23,8 @@ install_shellspec()
fi
msgr run "Running make install..."
make -C "$SHELLSPEC_CACHE" install PREFIX="$HOME/.local"
msgr run_done "shellspec $version installed to $HOME/.local/bin/shellspec"
make -C "$SHELLSPEC_CACHE" install PREFIX="$HOME/.local" \
&& msgr run_done "shellspec $version installed to $HOME/.local/bin/shellspec"
return 0
}

View File

@@ -15,8 +15,8 @@ clone_z_repo()
local bin_path=$2
if [[ ! -d "$bin_path" ]]; then
git clone "$git_path" "$bin_path"
msgr run_done "z installed at $bin_path"
git clone "$git_path" "$bin_path" \
&& msgr run_done "z installed at $bin_path"
else
msgr ok "z ($bin_path/) already installed"
fi