Files
System-Sync-Restore/completions/ssr.bash
T
Oliver Surke 36d4941c95 feat: ssr mackup scan|list|clean — on-demand cfg generation with confirmation
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>
2026-05-12 13:39:17 +02:00

73 lines
2.0 KiB
Bash

# bash completion for ssr — System Sync & Restore.
# Source from your ~/.bashrc or place under ~/.local/share/bash-completion/completions/ssr
_ssr() {
local cur prev words cword
if declare -F _init_completion >/dev/null 2>&1; then
_init_completion || return
else
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
words=("${COMP_WORDS[@]}")
cword=$COMP_CWORD
fi
local commands="install sync restore update schedule config completions status mackup version help"
local global_flags="-c --config -h --help"
# Detect command (first non-flag word after `ssr`).
local cmd=""
local i
for ((i = 1; i < cword; i++)); do
case "${words[i]}" in
-c|--config) ((i++)); continue ;;
-*) continue ;;
*) cmd="${words[i]}"; break ;;
esac
done
# Handle --config <path>.
if [[ "$prev" == "-c" || "$prev" == "--config" ]]; then
COMPREPLY=( $(compgen -f -- "$cur") )
return
fi
# Top-level command selection.
if [[ -z "$cmd" ]]; then
if [[ "$cur" == -* ]]; then
COMPREPLY=( $(compgen -W "$global_flags" -- "$cur") )
else
COMPREPLY=( $(compgen -W "$commands" -- "$cur") )
fi
return
fi
# Per-command argument completion.
case "$cmd" in
restore)
COMPREPLY=( $(compgen -f -- "$cur") )
;;
update)
COMPREPLY=( $(compgen -W "--dry-run -n -h --help" -- "$cur") )
;;
schedule)
COMPREPLY=( $(compgen -W "on off status" -- "$cur") )
;;
config)
COMPREPLY=( $(compgen -W "show edit path" -- "$cur") )
;;
completions)
COMPREPLY=( $(compgen -W "install uninstall status" -- "$cur") )
;;
mackup)
COMPREPLY=( $(compgen -W "scan list clean" -- "$cur") )
;;
*)
COMPREPLY=()
;;
esac
}
complete -F _ssr ssr