Initial Commit
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# Rsync Manager for macOS
|
||||
|
||||
Native SwiftUI rsync job manager for macOS 14+.
|
||||
|
||||
## Features
|
||||
|
||||
- Persistent saved sync jobs using SwiftData
|
||||
- Create, edit, duplicate and delete jobs
|
||||
- Local/mounted-volume destinations
|
||||
- SSH remote destinations with custom port and SSH key
|
||||
- Archive, compression, delete, permissions and extended-attribute options
|
||||
- One-exclusion-per-line rules
|
||||
- Additional custom rsync arguments
|
||||
- Dry-run mode
|
||||
- Run on demand
|
||||
- Live rsync output
|
||||
- Cancel active job
|
||||
- Permanent run history with full command/stdout/stderr/exit code
|
||||
- Warning before a live `--delete` run
|
||||
- Automatically prefers `/opt/homebrew/bin/rsync`, then `/usr/local/bin/rsync`, then `/usr/bin/rsync`
|
||||
|
||||
## Open and run
|
||||
|
||||
Open `RsyncManager.xcodeproj` in Xcode and press Run.
|
||||
|
||||
The app deliberately has App Sandbox disabled because a general rsync utility needs to execute rsync/ssh and access arbitrary source/destination paths. Hardened Runtime remains enabled.
|
||||
|
||||
For a current rsync on Apple Silicon:
|
||||
|
||||
brew install rsync
|
||||
|
||||
SSH authentication works with your normal OpenSSH configuration and keys. If no SSH key is specified on a job, `ssh` uses its normal configuration in `~/.ssh/config`.
|
||||
|
||||
## macOS requirement
|
||||
|
||||
macOS 14 or later (SwiftData).
|
||||
|
||||
## Automation
|
||||
|
||||
Rsync Manager supports per-job scheduling (once, hourly, daily, weekly, monthly and custom minute intervals), a month calendar/agenda, and FSEvents-based file watching. Scheduled and watch-triggered runs are silent and always written to History with their trigger source.
|
||||
|
||||
Background automation remains active while the application is running, including when its window is minimised, hidden or closed. The Automation settings include a native macOS Launch at Login option so the scheduler and watchers are available after sign-in. Quitting the application stops its in-process scheduler/watchers until it is launched again.
|
||||
Reference in New Issue
Block a user