Files
omarchycn/bin/omarchy-snapshot
T
David Heinemeier HanssonandClaude Opus 5 9174fbf851 Recognize the omarchy-dev package in omarchy-version
The edge channel installs omarchy-dev, but omarchy-version only queried
omarchy, so it exited 1 there. omarchy-snapshot runs under set -e, so the
failed lookup aborted the whole update over a snapshot label.

It only worked at all because omarchy-dev declares provides=(omarchy) from
the installer repo. Builds without it fail, so check both packages here
instead of relying on a declaration from another tree.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-29 09:15:53 -07:00

40 lines
937 B
Bash
Executable File

#!/bin/bash
# omarchy:summary=Create or restore system snapshots with snapper
# omarchy:args=<create|restore>
# omarchy:requires-sudo=true
set -e
COMMAND="$1"
if [[ -z $COMMAND ]]; then
echo "Usage: omarchy-snapshot <create|restore>" >&2
exit 1
fi
if omarchy-cmd-missing snapper; then
exit 127 # omarchy-update can use this to just ignore if snapper is not available
fi
case "$COMMAND" in
create)
# The description is just a label, so never let it abort the snapshot.
DESC="$(omarchy-version 2>/dev/null || echo unknown)"
echo -e "\e[32mCreate system snapshot\e[0m"
# Get existing snapper config names from CSV output
mapfile -t CONFIGS < <(sudo snapper --csvout list-configs | awk -F, 'NR>1 {print $1}')
for config in "${CONFIGS[@]}"; do
sudo snapper -c "$config" create -c number -d "$DESC"
sudo snapper -c "$config" cleanup number
done
echo
;;
restore)
sudo limine-snapper-restore
;;
esac