36d4941c95
Instead of silently writing ~/.mackup/ssr-*.cfg on every sync, generation is now an explicit opt-in command: ssr mackup scan ssr mackup scan — dry-run: shows NEW/UPD/DEL changes, prompts before writing ssr mackup list — list existing generated files ssr mackup clean — remove all generated files (with confirmation) ssr sync no longer calls generate_custom_cfg automatically. Completions updated for zsh, bash, fish. Co-authored-by: Cursor <cursoragent@cursor.com>
75 lines
2.7 KiB
Plaintext
75 lines
2.7 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]'
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_ssr "$@"
|