#!/usr/bin/env bash # Unix-style config backup - does one thing well set -e backup_config() { local backup_dir="${1:-}" local timestamp=$(date +%Y%m%d-%H%M%S) # Default backup location if [[ -z "$backup_dir" ]]; then backup_dir="/etc/nixos.backup.$timestamp" fi # Only backup if source exists if [[ ! -d /etc/nixos ]]; then [[ "${OMNIXY_QUIET:-}" != "1" ]] && echo "No existing configuration to backup" exit 0 fi # Create backup sudo cp -r /etc/nixos "$backup_dir" # Output backup location for piping/scripting echo "$backup_dir" } main() { case "${1:-}" in --help|-h) echo "Usage: omnixy-backup-config [backup-directory]" echo "Backs up /etc/nixos to specified directory (or timestamped default)" exit 0 ;; *) backup_config "$1" ;; esac } main "$@"