Files
System-Sync-Restore/completions/_ssr
T
Oliver Surke c31338dba9 refactor(mackup): transition to copy-based backup and restore
- Updated `ssr sync` and `ssr restore` commands to use `mackup backup` and `mackup restore`, replacing the previous symlink-based approach.
- Added guidance for users with legacy symlink setups to run `ssr mackup unlink` for recovery.
- Revised documentation in README, completions, and configuration examples to reflect the new copy-based methodology for improved reliability on newer macOS versions.
- Enhanced comments in the codebase to clarify the changes and their implications for users.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-13 09:17:25 +02:00

76 lines
2.8 KiB
Plaintext

#compdef ssr
# zsh completion for ssr — System Sync & Restore.
# Install: copy or symlink into a directory on $fpath, then `autoload -Uz _ssr`.
_ssr() {
local context state line
typeset -A opt_args
local -a commands=(
'install:First-time install (link binary, seed config, schedule sync)'
'sync:Run a backup → cloud'
'restore:Restore a machine (defaults to cloud Brewfile)'
'update:Pull latest ssr code, refresh launchd if needed'
'schedule:Manage the scheduled launchd sync job'
'config:Show or edit the active config file'
'completions:Install or remove shell completions'
'status:Show last sync time, cloud target, schedule state'
'mackup:Manage auto-generated Mackup app definitions'
'version:Print version'
'help:Show top-level help'
)
_arguments -C \
'(-h --help)'{-h,--help}'[Show help]' \
'(-c --config)'{-c,--config}'[Use a specific config file]:path:_files' \
'1: :->cmd' \
'*::arg:->args'
case "$state" in
cmd)
_describe -t commands 'ssr command' commands
;;
args)
case "${line[1]}" in
restore)
_arguments \
'(-h --help)'{-h,--help}'[Show help]' \
'1:Brewfile:_files'
;;
update)
_arguments \
'(-h --help)'{-h,--help}'[Show help]' \
'(-n --dry-run)'{-n,--dry-run}'[Preview without pulling]'
;;
schedule)
_values 'schedule action' \
'on[Enable scheduled sync]' \
'off[Disable scheduled sync]' \
'status[Show schedule state]'
;;
config)
_values 'config action' \
'show[Print active config]' \
'edit[Open config in $EDITOR]' \
'path[Print config path]'
;;
completions)
_values 'completions action' \
'install[Install shell completions]' \
'uninstall[Remove shell completions]' \
'status[Show installed completions]'
;;
mackup)
_values 'mackup action' \
'scan[Suggest and confirm ssr-*.cfg files]' \
'list[List generated ssr-*.cfg files]' \
'clean[Remove all generated ssr-*.cfg files]' \
'unlink[undo symlink Mackup — legacy recovery]'
;;
esac
;;
esac
}
_ssr "$@"