feat: selective sub-path backup for volatile dot-dirs
Mackup with engine=file_system already uses symlinks for all backed-up apps (/Users/osurke/.docker → <cloud>/Mackup/mackup/.docker). The copy PHASE fails when the source dir contains sockets or dangling symlinks. For dirs like .claude that have a volatile debug/ subdir, the clean fix is to list only the stable sub-paths in the Mackup cfg rather than the whole directory — debug/ is never touched. _SSR_MACKUP_SELECTIVE: built-in overrides for .claude, .cursor, .codex, .vscode, .factory — lists only config files (settings.json, CLAUDE.md, skills, plugins, agents, …), skipping logs/, debug/, etc. _ssr_mackup_resolve_paths(): resolves the [configuration_files] entries for a given item using the selective table, falling back to the whole dir. ssr mackup scan now shows '6 sub-path(s) of .claude/' in the plan instead of '.claude/' to make the selective behaviour visible. Configurable via SSR_MACKUP_SELECTIVE_PATHS in ssr.conf. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -26,6 +26,11 @@ SSR_MACKUP_AUTODISCOVER=true
|
||||
# Built-in defaults: .claude/debug .cursor/logs .vscode/logs .npm/_logs
|
||||
# SSR_MACKUP_PRECLEAN_PATHS=".my-app/tmp .other-app/run"
|
||||
|
||||
# Selective sub-path overrides — back up only listed sub-paths for a dir
|
||||
# instead of the whole directory (avoids sockets/debug symlinks in volatile dirs).
|
||||
# Format: ".dir=subpath1,subpath2" Built-in defaults cover .claude, .cursor, etc.
|
||||
# SSR_MACKUP_SELECTIVE_PATHS=".my-app=config.json,themes"
|
||||
|
||||
# Extra paths (relative to $HOME) to always include, space-separated.
|
||||
# Example: ".easymcp .my-tool .config/my-cli"
|
||||
# SSR_MACKUP_EXTRA_PATHS=""
|
||||
|
||||
Reference in New Issue
Block a user