Skip to content

Add Universe Google Drive backup setup - #10

Draft
tylerthecoder wants to merge 1 commit into
mainfrom
codex/universe-google-drive-backup
Draft

tylerthecoder wants to merge 1 commit into
mainfrom
codex/universe-google-drive-backup

Conversation

@tylerthecoder

Copy link
Copy Markdown
Owner

The Universe Google Drive backup currently lives only in a local script and LaunchAgent. Add an universe-gdrive-backup setup to Owl's mac nest so the hourly mirror can be reproduced from versioned configuration.

  • Mirror ~/Universe/, including notes and Git history, to the selected Google Drive account's My Drive/Universe Backup/. Preserve the existing exclusions and rsync --delete behavior: this is a mirror with propagated deletions, not a versioned archive. Google Drive desktop uploads the local mirror asynchronously.
  • Generate the existing per-user LaunchAgent label with a one-hour interval and RunAtLoad. Retain previous plist files, support account selection and dry-run previews, and require no root access or stored credentials.
  • Refuse missing source/mount directories, overlapping paths, and a symlink destination; serialize runs and propagate rsync failures.
  • Include installation, disable/re-enable, logs, and troubleshooting documentation. No Syncthing changes.

Validation on macOS:

  • Nine Python unittest cases pass, including real rsync against isolated temporary folders, note/Git copying, destination-only deletion, dry-run, missing directories, unsafe paths, concurrent runs, failure handling, and mocked LaunchAgent installation.
  • bash -n, git diff --check, cargo check --no-default-features, and cargo test --no-default-features pass (the Rust suite contains zero tests).
  • Owl's absolute-path setup info preview passes for the new setup; worktree mac dependencies and local asset paths validated separately. owl nest info passes for the configured existing mac nest. These read-only commands use the user's existing Owl configuration, which points at the original checkout, not the PR worktree.
  • owl setups-validate reports four pre-existing failures due to missing local secrets.sh and dependent nests. cargo fmt --check and cargo clippy --no-default-features --all-targets -- -D warnings fail in untouched Rust files. Opened as a draft pending those repository-wide checks; no unrelated Rust cleanup included.

The live backup was not replaced or reinstalled. Real launchctl installation and Google Drive cloud upload were not exercised; tests mock launchctl. Installing this setup later replaces the same user job and starts an immediate mirror run.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant