#!/bin/bash # omarchy:summary=Create or restore system snapshots with snapper # omarchy:args= # omarchy:requires-sudo=true set -e COMMAND="$1" if [[ -z $COMMAND ]]; then echo "Usage: omarchy-snapshot " >&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