fix(mackup): safer defaults + recovery after broken symlink sync

- Default-off SSR_MACKUP_PRESYMLINK for DynamicProfiles pre-symlink (was
  risking empty/wrong iCloud trees and breaking iTerm2).
- Remove incorrect skip entries: built-in cfgs use different paths than
  ~/.zsh, ~/.vscode*, ~/.iterm2 — skipping hid real overlap from scan only
  but the presymlink change was the main footgun.
- Add `ssr mackup unlink` → `mackup -f link uninstall` to copy configs back
  from Mackup storage and drop symlinks (official undo).
- Docs: ssr.conf.example, README sync/restore wording, completions.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-12 20:09:23 +02:00
parent ccc1db1e93
commit 51fb589ef2
8 changed files with 71 additions and 42 deletions
+2 -1
View File
@@ -64,7 +64,8 @@ _ssr() {
_values 'mackup action' \
'scan[Suggest and confirm ssr-*.cfg files]' \
'list[List generated ssr-*.cfg files]' \
'clean[Remove all generated ssr-*.cfg files]'
'clean[Remove all generated ssr-*.cfg files]' \
'unlink[mackup link uninstall — revert symlinks]'
;;
esac
;;
+1 -1
View File
@@ -61,7 +61,7 @@ _ssr() {
COMPREPLY=( $(compgen -W "install uninstall status" -- "$cur") )
;;
mackup)
COMPREPLY=( $(compgen -W "scan list clean" -- "$cur") )
COMPREPLY=( $(compgen -W "scan list clean unlink" -- "$cur") )
;;
*)
COMPREPLY=()
+1 -1
View File
@@ -70,4 +70,4 @@ complete -c ssr -n '__ssr_using_subcmd schedule' -a 'on off status'
complete -c ssr -n '__ssr_using_subcmd config' -a 'show edit path'
complete -c ssr -n '__ssr_using_subcmd completions' -a 'install uninstall status'
complete -c ssr -n __ssr_needs_subcmd -a mackup -d 'Manage Mackup app definitions'
complete -c ssr -n '__ssr_using_subcmd mackup' -a 'scan list clean'
complete -c ssr -n '__ssr_using_subcmd mackup' -a 'scan list clean unlink'