fix(mackup): update backup path and enhance configuration handling

- Corrected the backup path in the `_in_backup` function to reflect the new structure under `mackup/`.
- Improved error handling in `ssr::mackup::configure` to skip restore if the configuration file is not updated, providing user feedback.
- Updated `ssr::sync` to conditionally execute backup based on configuration validity, enhancing robustness.
- Revised documentation in configuration examples to clarify the new Mackup directory structure and its implications for users.
This commit is contained in:
2026-05-13 20:17:50 +02:00
parent 507380eb88
commit 421b802467
8 changed files with 165 additions and 23 deletions
+1 -1
View File
@@ -13,7 +13,7 @@
# Available variables:
# SSR_ROOT — path to the ssr repository
# backup_dir — cloud backup directory for this host
# mackup_dir — cloud Mackup directory
# mackup_dir — cloud path parent for Mackup (~/.mackup.cfg path=…; files under …/mackup/)
#
# EXAMPLES
# -------------------------------------------------------------------------
+6 -2
View File
@@ -12,14 +12,18 @@ SSR_CLOUD_PROVIDER=icloud
# Only used when SSR_CLOUD_PROVIDER=custom. Absolute path.
# SSR_CLOUD_PATH=/Volumes/MyNAS/macos-sync
# Subfolders created inside the cloud root.
# Subfolder inside the cloud root for SSR data: per-host backups live under
# <cloud>/<SSR_BACKUP_SUBDIR>/<hostname> - <uuid>/. Mackup storage uses the
# same parent path; ~/.mackup.cfg sets directory=mackup (see ssr::mackup::configure).
SSR_BACKUP_SUBDIR=BACKUP
SSR_MACKUP_SUBDIR=Mackup
# SSR uses `mackup backup` / `mackup restore` (copy, not symlinks) for reliability
# on newer macOS. If you still have Mackup symlinks from an older setup, run:
# ssr mackup unlink
# SSR_ALLOW_CONF_OVERWRITE=yes — apply ~/.mackup.cfg updates without a TTY prompt
# (launchd / CI). Interactive runs show a diff and ask before replacing.
# Subdirs (relative to $HOME) to delete before each mackup backup attempt.
# Handles transient dirs with dangling symlinks or sockets (debug sessions,
# log dirs) that should not be copied to cloud.