From 50610425205021dade0161fe57f6d745663abb89 Mon Sep 17 00:00:00 2001 From: hlclarog <58982096+hlclarog@users.noreply.github.com> Date: Mon, 12 Oct 2026 11:54:55 -0500 Subject: [PATCH] fix(zim): skip Zim update when Zim is not configured update_all runs zsh "$ZIM_HOME/zimfw.zsh" unconditionally under set -u, so a shell without ZIM_HOME (a zsh setup that does not use Zim, or one whose .zshenv does not export it) aborts that step with 'ZIM_HOME: unbound variable' while the run still reports success. Move the Zim update into package_managers/zim.sh, like the other package managers, and run it only when ZIM_HOME is set and zimfw.zsh exists. --- scripts/package/src/package_managers/zim.sh | 11 +++++++++++ scripts/package/update_all | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 scripts/package/src/package_managers/zim.sh diff --git a/scripts/package/src/package_managers/zim.sh b/scripts/package/src/package_managers/zim.sh new file mode 100644 index 00000000..08c68915 --- /dev/null +++ b/scripts/package/src/package_managers/zim.sh @@ -0,0 +1,11 @@ +# shellcheck shell=bash +# Zim is optional: a zsh setup without it never sets ZIM_HOME. +zim::is_configured() { + [[ -n ${ZIM_HOME:-} && -f "$ZIM_HOME/zimfw.zsh" ]] +} + +zim::update_all() { + zsh "$ZIM_HOME/zimfw.zsh" upgrade 2>&1 | log::file "Upgrading Zim" && + zsh "$ZIM_HOME/zimfw.zsh" update 2>&1 | log::file "Updating Zim" && + output::answer "Done" +} diff --git a/scripts/package/update_all b/scripts/package/update_all index fd1b9c9f..6e2e3634 100755 --- a/scripts/package/update_all +++ b/scripts/package/update_all @@ -10,6 +10,7 @@ source "$DOTLY_PATH/scripts/package/src/package_managers/gem.sh" source "$DOTLY_PATH/scripts/package/src/package_managers/mas.sh" source "$DOTLY_PATH/scripts/package/src/package_managers/npm.sh" source "$DOTLY_PATH/scripts/package/src/package_managers/pip.sh" +source "$DOTLY_PATH/scripts/package/src/package_managers/zim.sh" ##? Update all packages ##? @@ -30,7 +31,7 @@ platform::command_exists cargo && output::h2 '📦 cargo' && cargo::update_all platform::command_exists tldr && output::h2 '📜 tldr database' && tldr --update >/dev/null 2>&1 && output::answer "Database updated" -output::h2 "👽 Zim Framework" && zsh "$ZIM_HOME/zimfw.zsh" upgrade 2>&1 | log::file "Upgrading Zim" && zsh "$ZIM_HOME/zimfw.zsh" update 2>&1 | log::file "Updating Zim" && output::answer "Done" +zim::is_configured && output::h2 "👽 Zim Framework" && zim::update_all output::h2 "🌚 dotly" && dot self update >/dev/null 2>&1 && output::answer "Done"