3 Commits

Author SHA1 Message Date
Oliver Surke d06a6e47d7 fix: soft-fail brew bundle install; update .gitignore
lib/brew.sh:
  brew bundle exits non-zero when any single package fails (network error,
  cask version mismatch, missing tap, etc.). Previously this killed the
  entire ssr restore via set -euo pipefail before mackup / defaults / prefs
  had a chance to run. Capture the exit code, emit a clear warning, and
  continue. The user can rerun the manual command shown in the warning.

.gitignore:
  Replace minimal gitignore with the comprehensive macOS + Cursor + VSCode
  template generated by toptal gitignore.io. Preserve the original ssr-
  specific custom rules (.local/, .config/, *.log, *.plist.local) in the
  custom section at the bottom.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 21:22:27 +02:00
Oliver Surke b1fe7c2367 chore: update .gitignore for macOS and Visual Studio Code
Expanded .gitignore to include additional macOS and Visual Studio Code entries, improving the exclusion of unnecessary files. Added rules for iCloud files, local history, and built extensions, while retaining essential configuration files. Cleaned up legacy entries and ensured custom rules are preserved.
2026-05-11 21:21:27 +02:00
Oliver Surke 539a8fc28f Initial ssr repository
Convert the legacy system_sync.sh and system_restore.sh into a modular
shareable repository:

- bin/ssr CLI dispatcher with install/sync/restore/schedule/config/status
- lib/ split: common, cloud, brew, mackup, macos
- Cloud provider abstraction (icloud, dropbox, googledrive, onedrive, custom)
- launchd template for scheduled daily sync (renderable via sed)
- ssr.conf.example with whitelisted KEY=VALUE config loader
- macos-defaults.sh extracted from inline block, overridable
- install.sh bootstrap symlinks CLI into ~/.local/bin
- README with usage, config table, migration map, security notes
- Original scripts archived under legacy/ for reference

Fixes vs originals: set -euo pipefail, quoted vars, find -print0,
spctl --global-disable (was --master-disable), MACOS=".macos" bug,
zero-width char before ln, Apple Silicon brew shellenv, config injection
hardening.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 15:05:17 +02:00