From 3b95f53a25a7ce508c1bcdd40614ed0285b0bc4f Mon Sep 17 00:00:00 2001 From: Mark Gregory Date: Tue, 8 Sep 2026 14:12:59 +0100 Subject: [PATCH] Initial Commit --- .DS_Store | Bin 0 -> 10244 bytes AppStore/README.txt | 12 + AppStore/RsyncManager-AppIcon-1024.png | Bin 0 -> 161049 bytes README.md | 42 ++ RsyncManager.xcodeproj/project.pbxproj | 158 +++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 15521 bytes .../xcschemes/xcschememanagement.plist | 14 + .../AccentColor.colorset/Contents.json | 20 + .../AppIcon.appiconset/Contents.json | 68 ++ .../AppIcon.appiconset/appicon_128x128@1x.png | Bin 0 -> 13462 bytes .../AppIcon.appiconset/appicon_128x128@2x.png | Bin 0 -> 35707 bytes .../AppIcon.appiconset/appicon_16x16@1x.png | Bin 0 -> 596 bytes .../AppIcon.appiconset/appicon_16x16@2x.png | Bin 0 -> 1681 bytes .../AppIcon.appiconset/appicon_256x256@1x.png | Bin 0 -> 35707 bytes .../AppIcon.appiconset/appicon_256x256@2x.png | Bin 0 -> 88718 bytes .../AppIcon.appiconset/appicon_32x32@1x.png | Bin 0 -> 1681 bytes .../AppIcon.appiconset/appicon_32x32@2x.png | Bin 0 -> 4836 bytes .../AppIcon.appiconset/appicon_512x512@1x.png | Bin 0 -> 88718 bytes .../AppIcon.appiconset/appicon_512x512@2x.png | Bin 0 -> 161049 bytes RsyncManager/Assets.xcassets/Contents.json | 6 + RsyncManager/ContentView.swift | 214 ++++++ RsyncManager/Models/SyncJob.swift | 90 +++ RsyncManager/Models/SyncRun.swift | 129 ++++ RsyncManager/Models/SyncSchedule.swift | 142 ++++ RsyncManager/Resources/RsyncManagerHelp.md | 513 ++++++++++++++ RsyncManager/RsyncManagerApp.swift | 64 ++ .../Services/BackgroundSyncManager.swift | 245 +++++++ RsyncManager/Services/FileWatchService.swift | 94 +++ .../Services/RsyncCommandBuilder.swift | 132 ++++ RsyncManager/Services/RsyncLocator.swift | 12 + RsyncManager/Services/RsyncRunner.swift | 139 ++++ RsyncManager/SettingsView.swift | 140 ++++ RsyncManager/Utilities/FilePicker.swift | 21 + RsyncManager/Utilities/KeychainStore.swift | 41 ++ .../Views/Components/FlowLayout.swift | 36 + RsyncManager/Views/Components/PathField.swift | 22 + .../Views/Components/SplashView.swift | 49 ++ .../Views/Components/StatusBadge.swift | 25 + RsyncManager/Views/HelpView.swift | 220 ++++++ RsyncManager/Views/Jobs/JobDetailView.swift | 670 ++++++++++++++++++ RsyncManager/Views/Jobs/JobEditorView.swift | 271 +++++++ RsyncManager/Views/Jobs/JobListView.swift | 352 +++++++++ RsyncManager/Views/Runs/RunHistoryView.swift | 119 ++++ RsyncManager/Views/Runs/RunLogView.swift | 47 ++ RsyncManager/Views/ScheduleCalendarView.swift | 220 ++++++ 46 files changed, 4334 insertions(+) create mode 100644 .DS_Store create mode 100644 AppStore/README.txt create mode 100644 AppStore/RsyncManager-AppIcon-1024.png create mode 100644 README.md create mode 100644 RsyncManager.xcodeproj/project.pbxproj create mode 100644 RsyncManager.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 RsyncManager.xcodeproj/project.xcworkspace/xcuserdata/mag.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 RsyncManager.xcodeproj/xcuserdata/mag.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 RsyncManager/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 RsyncManager/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_128x128@1x.png create mode 100644 RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_128x128@2x.png create mode 100644 RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_16x16@1x.png create mode 100644 RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_16x16@2x.png create mode 100644 RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_256x256@1x.png create mode 100644 RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_256x256@2x.png create mode 100644 RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_32x32@1x.png create mode 100644 RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_32x32@2x.png create mode 100644 RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_512x512@1x.png create mode 100644 RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_512x512@2x.png create mode 100644 RsyncManager/Assets.xcassets/Contents.json create mode 100644 RsyncManager/ContentView.swift create mode 100644 RsyncManager/Models/SyncJob.swift create mode 100644 RsyncManager/Models/SyncRun.swift create mode 100644 RsyncManager/Models/SyncSchedule.swift create mode 100644 RsyncManager/Resources/RsyncManagerHelp.md create mode 100644 RsyncManager/RsyncManagerApp.swift create mode 100644 RsyncManager/Services/BackgroundSyncManager.swift create mode 100644 RsyncManager/Services/FileWatchService.swift create mode 100644 RsyncManager/Services/RsyncCommandBuilder.swift create mode 100644 RsyncManager/Services/RsyncLocator.swift create mode 100644 RsyncManager/Services/RsyncRunner.swift create mode 100644 RsyncManager/SettingsView.swift create mode 100644 RsyncManager/Utilities/FilePicker.swift create mode 100644 RsyncManager/Utilities/KeychainStore.swift create mode 100644 RsyncManager/Views/Components/FlowLayout.swift create mode 100644 RsyncManager/Views/Components/PathField.swift create mode 100644 RsyncManager/Views/Components/SplashView.swift create mode 100644 RsyncManager/Views/Components/StatusBadge.swift create mode 100644 RsyncManager/Views/HelpView.swift create mode 100644 RsyncManager/Views/Jobs/JobDetailView.swift create mode 100644 RsyncManager/Views/Jobs/JobEditorView.swift create mode 100644 RsyncManager/Views/Jobs/JobListView.swift create mode 100644 RsyncManager/Views/Runs/RunHistoryView.swift create mode 100644 RsyncManager/Views/Runs/RunLogView.swift create mode 100644 RsyncManager/Views/ScheduleCalendarView.swift diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..21b81042cc4300c91adee64f6d03b03e6ec54d9d GIT binary patch literal 10244 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%0Dp-3|P~$ASZlJAaVvl+bqND_Fkj8 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 KsvoXe1^ge`gLe1; literal 0 HcmV?d00001 diff --git a/README.md b/README.md new file mode 100644 index 0000000..28735e3 --- /dev/null +++ b/README.md @@ -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. diff --git a/RsyncManager.xcodeproj/project.pbxproj b/RsyncManager.xcodeproj/project.pbxproj new file mode 100644 index 0000000..1a5e390 --- /dev/null +++ b/RsyncManager.xcodeproj/project.pbxproj @@ -0,0 +1,158 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = {}; + objectVersion = 60; + objects = { + +/* Begin PBXBuildFile section */ + 3E6D35DAB1BD51D9E21E7B3F /* RsyncManagerApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C1944E5F7109545301358AD /* RsyncManagerApp.swift */; }; + FB73BE2A7887F32D512EC848 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D2D059072C1E33E64D7DCDF /* ContentView.swift */; }; + C24299D89D285E985C089C0F /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 344231C687A1F4BDC84AE838 /* SettingsView.swift */; }; + 205FC2ECD561AE0B6EA8BE73 /* SyncJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13136DBE7B701EB6D0CE478E /* SyncJob.swift */; }; + 0AB9E3362F1DCE2312221B31 /* SyncRun.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7A5B87A4971CCE37EF1B979 /* SyncRun.swift */; }; + 93BD9B27AA1F883F0A05CE3A /* RsyncCommandBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = F618D81AA8D3052C88FDF93F /* RsyncCommandBuilder.swift */; }; + CC02106B9AF77855935487F6 /* RsyncRunner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F173223A0A15A648115C2B6 /* RsyncRunner.swift */; }; + 87F3C7BF9787C5EF1DFC58CE /* RsyncLocator.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE0FFB276373DDA4C5A8E419 /* RsyncLocator.swift */; }; + 0BBFC488F7DFF17E315AEEF2 /* FilePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8999F614BA12AF14ACCB5E3D /* FilePicker.swift */; }; + D2009B9542E292B66BB8A0D4 /* StatusBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA5919F7BA545585E4369602 /* StatusBadge.swift */; }; + 3D5AB53FDA192FBBA66D2CEF /* PathField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58B5F691C6DE4B3B7224BE4B /* PathField.swift */; }; + 41CA3E36ADC08AE451912D92 /* FlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5790F644CCAAF49094D57D68 /* FlowLayout.swift */; }; + 593DB1791A00690020ADF82D /* JobEditorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCA4F1E7C15E2FC1DCC85FEE /* JobEditorView.swift */; }; + 7C32064BC9CE29F5116ADE89 /* JobListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2639D73ED1EC5C164BC46AF /* JobListView.swift */; }; + DF2A7BB149EEC298F6207758 /* JobDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 002D9E0AA02D4B37F6BB05F6 /* JobDetailView.swift */; }; + 1FB249F959D6825750186C76 /* RunHistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD52560701DBE102AB8E8B73 /* RunHistoryView.swift */; }; + F58FB754850EEF340B2E65FE /* RunLogView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F39F11523D2F6BF2FBCD90FF /* RunLogView.swift */; }; + AA1000000000000000000001 /* KeychainStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA2000000000000000000001 /* KeychainStore.swift */; }; + AA1000000000000000000002 /* SplashView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA2000000000000000000002 /* SplashView.swift */; }; + AA1000000000000000000003 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AA2000000000000000000003 /* Assets.xcassets */; }; + AB1000000000000000000001 /* SyncSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB2000000000000000000001 /* SyncSchedule.swift */; }; + AB1000000000000000000002 /* FileWatchService.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB2000000000000000000002 /* FileWatchService.swift */; }; + AB1000000000000000000003 /* BackgroundSyncManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB2000000000000000000003 /* BackgroundSyncManager.swift */; }; + AB1000000000000000000004 /* ScheduleCalendarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB2000000000000000000004 /* ScheduleCalendarView.swift */; }; + AC1000000000000000000001 /* HelpView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC2000000000000000000001 /* HelpView.swift */; }; + AC1000000000000000000002 /* RsyncManagerHelp.md in Resources */ = {isa = PBXBuildFile; fileRef = AC2000000000000000000002 /* RsyncManagerHelp.md */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 2C1944E5F7109545301358AD /* RsyncManagerApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "RsyncManagerApp.swift"; sourceTree = ""; }; + 4D2D059072C1E33E64D7DCDF /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ContentView.swift"; sourceTree = ""; }; + 344231C687A1F4BDC84AE838 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SettingsView.swift"; sourceTree = ""; }; + 13136DBE7B701EB6D0CE478E /* SyncJob.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Models/SyncJob.swift"; sourceTree = ""; }; + C7A5B87A4971CCE37EF1B979 /* SyncRun.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Models/SyncRun.swift"; sourceTree = ""; }; + F618D81AA8D3052C88FDF93F /* RsyncCommandBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Services/RsyncCommandBuilder.swift"; sourceTree = ""; }; + 1F173223A0A15A648115C2B6 /* RsyncRunner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Services/RsyncRunner.swift"; sourceTree = ""; }; + BE0FFB276373DDA4C5A8E419 /* RsyncLocator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Services/RsyncLocator.swift"; sourceTree = ""; }; + 8999F614BA12AF14ACCB5E3D /* FilePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Utilities/FilePicker.swift"; sourceTree = ""; }; + CA5919F7BA545585E4369602 /* StatusBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Views/Components/StatusBadge.swift"; sourceTree = ""; }; + 58B5F691C6DE4B3B7224BE4B /* PathField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Views/Components/PathField.swift"; sourceTree = ""; }; + 5790F644CCAAF49094D57D68 /* FlowLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Views/Components/FlowLayout.swift"; sourceTree = ""; }; + BCA4F1E7C15E2FC1DCC85FEE /* JobEditorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Views/Jobs/JobEditorView.swift"; sourceTree = ""; }; + E2639D73ED1EC5C164BC46AF /* JobListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Views/Jobs/JobListView.swift"; sourceTree = ""; }; + 002D9E0AA02D4B37F6BB05F6 /* JobDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Views/Jobs/JobDetailView.swift"; sourceTree = ""; }; + CD52560701DBE102AB8E8B73 /* RunHistoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Views/Runs/RunHistoryView.swift"; sourceTree = ""; }; + F39F11523D2F6BF2FBCD90FF /* RunLogView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Views/Runs/RunLogView.swift"; sourceTree = ""; }; + D91517BFBDECE389497A425B /* RsyncManager.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RsyncManager.app; sourceTree = BUILT_PRODUCTS_DIR; }; + AA2000000000000000000001 /* KeychainStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Utilities/KeychainStore.swift"; sourceTree = ""; }; + AA2000000000000000000002 /* SplashView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Views/Components/SplashView.swift"; sourceTree = ""; }; + AA2000000000000000000003 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + AB2000000000000000000001 /* SyncSchedule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Models/SyncSchedule.swift"; sourceTree = ""; }; + AB2000000000000000000002 /* FileWatchService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Services/FileWatchService.swift"; sourceTree = ""; }; + AB2000000000000000000003 /* BackgroundSyncManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Services/BackgroundSyncManager.swift"; sourceTree = ""; }; + AB2000000000000000000004 /* ScheduleCalendarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Views/ScheduleCalendarView.swift"; sourceTree = ""; }; + AC2000000000000000000001 /* HelpView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Views/HelpView.swift"; sourceTree = ""; }; + AC2000000000000000000002 /* RsyncManagerHelp.md */ = {isa = PBXFileReference; lastKnownFileType = text; path = "Resources/RsyncManagerHelp.md"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + DAF6AA633395B1B76148E35B /* Frameworks */ = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = (); runOnlyForDeploymentPostprocessing = 0; }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + FAD58DE7366495DB4650CFEF = {isa = PBXGroup; children = (B60F08E1B2CF35AEB2F1DE90 /* RsyncManager */, 86024CAD1E83101D97359D73 /* Products */); sourceTree = ""; }; + B60F08E1B2CF35AEB2F1DE90 /* RsyncManager */ = {isa = PBXGroup; children = ( + 2C1944E5F7109545301358AD /* RsyncManagerApp.swift */, + 4D2D059072C1E33E64D7DCDF /* ContentView.swift */, + 344231C687A1F4BDC84AE838 /* SettingsView.swift */, + 13136DBE7B701EB6D0CE478E /* SyncJob.swift */, + C7A5B87A4971CCE37EF1B979 /* SyncRun.swift */, + AB2000000000000000000001 /* SyncSchedule.swift */, + F618D81AA8D3052C88FDF93F /* RsyncCommandBuilder.swift */, + 1F173223A0A15A648115C2B6 /* RsyncRunner.swift */, + BE0FFB276373DDA4C5A8E419 /* RsyncLocator.swift */, + AB2000000000000000000002 /* FileWatchService.swift */, + AB2000000000000000000003 /* BackgroundSyncManager.swift */, + 8999F614BA12AF14ACCB5E3D /* FilePicker.swift */, + CA5919F7BA545585E4369602 /* StatusBadge.swift */, + 58B5F691C6DE4B3B7224BE4B /* PathField.swift */, + 5790F644CCAAF49094D57D68 /* FlowLayout.swift */, + BCA4F1E7C15E2FC1DCC85FEE /* JobEditorView.swift */, + E2639D73ED1EC5C164BC46AF /* JobListView.swift */, + 002D9E0AA02D4B37F6BB05F6 /* JobDetailView.swift */, + CD52560701DBE102AB8E8B73 /* RunHistoryView.swift */, + F39F11523D2F6BF2FBCD90FF /* RunLogView.swift */, + AB2000000000000000000004 /* ScheduleCalendarView.swift */, + AC2000000000000000000001 /* HelpView.swift */, + AC2000000000000000000002 /* RsyncManagerHelp.md */, + AA2000000000000000000001 /* KeychainStore.swift */, + AA2000000000000000000002 /* SplashView.swift */, + AA2000000000000000000003 /* Assets.xcassets */, + ); path = RsyncManager; sourceTree = ""; }; + 86024CAD1E83101D97359D73 /* Products */ = {isa = PBXGroup; children = (D91517BFBDECE389497A425B /* RsyncManager.app */); name = Products; sourceTree = ""; }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 42AEFBAE01D2DFD981F7DA7D /* RsyncManager */ = {isa = PBXNativeTarget; buildConfigurationList = 1EE5970F9824F2EE5F7679D7; buildPhases = (FCA229C23F166EBB0BA5029E /* Sources */, DAF6AA633395B1B76148E35B /* Frameworks */, B9C6EB6F79FC54535ACB3053 /* Resources */); buildRules = (); dependencies = (); name = RsyncManager; productName = RsyncManager; productReference = D91517BFBDECE389497A425B /* RsyncManager.app */; productType = "com.apple.product-type.application"; }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 46F86FAA6BBF9AC94A7E4595 /* Project object */ = {isa = PBXProject; attributes = {BuildIndependentTargetsInParallel = 1; LastSwiftUpdateCheck = 1600; LastUpgradeCheck = 1600; TargetAttributes = {42AEFBAE01D2DFD981F7DA7D = {CreatedOnToolsVersion = 16.0;};};}; buildConfigurationList = F0E5A3A488914D1AA34BF23A; compatibilityVersion = "Xcode 15.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = (en, Base); mainGroup = FAD58DE7366495DB4650CFEF; productRefGroup = 86024CAD1E83101D97359D73; projectDirPath = ""; projectRoot = ""; targets = (42AEFBAE01D2DFD981F7DA7D /* RsyncManager */); }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + B9C6EB6F79FC54535ACB3053 /* Resources */ = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = (AA1000000000000000000003 /* Assets.xcassets in Resources */, AC1000000000000000000002 /* RsyncManagerHelp.md in Resources */,); runOnlyForDeploymentPostprocessing = 0; }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + FCA229C23F166EBB0BA5029E /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 3E6D35DAB1BD51D9E21E7B3F /* RsyncManagerApp.swift in Sources */, + FB73BE2A7887F32D512EC848 /* ContentView.swift in Sources */, + C24299D89D285E985C089C0F /* SettingsView.swift in Sources */, + 205FC2ECD561AE0B6EA8BE73 /* SyncJob.swift in Sources */, + 0AB9E3362F1DCE2312221B31 /* SyncRun.swift in Sources */, + AB1000000000000000000001 /* SyncSchedule.swift in Sources */, + 93BD9B27AA1F883F0A05CE3A /* RsyncCommandBuilder.swift in Sources */, + CC02106B9AF77855935487F6 /* RsyncRunner.swift in Sources */, + 87F3C7BF9787C5EF1DFC58CE /* RsyncLocator.swift in Sources */, + AB1000000000000000000002 /* FileWatchService.swift in Sources */, + AB1000000000000000000003 /* BackgroundSyncManager.swift in Sources */, + 0BBFC488F7DFF17E315AEEF2 /* FilePicker.swift in Sources */, + D2009B9542E292B66BB8A0D4 /* StatusBadge.swift in Sources */, + 3D5AB53FDA192FBBA66D2CEF /* PathField.swift in Sources */, + 41CA3E36ADC08AE451912D92 /* FlowLayout.swift in Sources */, + 593DB1791A00690020ADF82D /* JobEditorView.swift in Sources */, + 7C32064BC9CE29F5116ADE89 /* JobListView.swift in Sources */, + DF2A7BB149EEC298F6207758 /* JobDetailView.swift in Sources */, + 1FB249F959D6825750186C76 /* RunHistoryView.swift in Sources */, + F58FB754850EEF340B2E65FE /* RunLogView.swift in Sources */, + AB1000000000000000000004 /* ScheduleCalendarView.swift in Sources */, + AC1000000000000000000001 /* HelpView.swift in Sources */, + AA1000000000000000000001 /* KeychainStore.swift in Sources */, + AA1000000000000000000002 /* SplashView.swift in Sources */, + ); runOnlyForDeploymentPostprocessing = 0; }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 43E6727D37020658CECE8F0C /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {CLANG_ENABLE_MODULES = YES; MACOSX_DEPLOYMENT_TARGET = 14.0; SDKROOT = macosx; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone";}; name = Debug; }; + 643EE4829B317660C2A7A37C /* Release */ = {isa = XCBuildConfiguration; buildSettings = {CLANG_ENABLE_MODULES = YES; MACOSX_DEPLOYMENT_TARGET = 14.0; SDKROOT = macosx; SWIFT_COMPILATION_MODE = wholemodule;}; name = Release; }; + 0C42D4EB6117C2B9C8008C35 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; ENABLE_APP_SANDBOX = NO; ENABLE_HARDENED_RUNTIME = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_CFBundleDisplayName = "Rsync Manager"; INFOPLIST_KEY_CFBundleIconName = AppIcon; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = net.absdev.RsyncManager; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0;}; name = Debug; }; + A969B6690DDF65BACEAA2A89 /* Release */ = {isa = XCBuildConfiguration; buildSettings = {ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; ENABLE_APP_SANDBOX = NO; ENABLE_HARDENED_RUNTIME = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_CFBundleDisplayName = "Rsync Manager"; INFOPLIST_KEY_CFBundleIconName = AppIcon; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = net.absdev.RsyncManager; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0;}; name = Release; }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + F0E5A3A488914D1AA34BF23A /* Build configuration list for PBXProject */ = {isa = XCConfigurationList; buildConfigurations = (43E6727D37020658CECE8F0C /* Debug */, 643EE4829B317660C2A7A37C /* Release */); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 1EE5970F9824F2EE5F7679D7 /* Build configuration list for PBXNativeTarget */ = {isa = XCConfigurationList; buildConfigurations = (0C42D4EB6117C2B9C8008C35 /* Debug */, A969B6690DDF65BACEAA2A89 /* Release */); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; +/* End XCConfigurationList section */ + }; + rootObject = 46F86FAA6BBF9AC94A7E4595 /* Project object */; +} diff --git a/RsyncManager.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/RsyncManager.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/RsyncManager.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/RsyncManager.xcodeproj/project.xcworkspace/xcuserdata/mag.xcuserdatad/UserInterfaceState.xcuserstate b/RsyncManager.xcodeproj/project.xcworkspace/xcuserdata/mag.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..26ac728140da4bc2ccebeb4d781c6de404c7fe5d GIT binary patch literal 15521 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 rTBloQT9;Z~R=4#utKT|kJ;QpI^&IQ + + + + SchemeUserState + + RsyncManager.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/RsyncManager/Assets.xcassets/AccentColor.colorset/Contents.json b/RsyncManager/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..740fb4f --- /dev/null +++ b/RsyncManager/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,20 @@ +{ + "colors": [ + { + "idiom": "universal", + "color": { + "color-space": "srgb", + "components": { + "red": "0.078", + "green": "0.455", + "blue": "0.902", + "alpha": "1.000" + } + } + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} \ No newline at end of file diff --git a/RsyncManager/Assets.xcassets/AppIcon.appiconset/Contents.json b/RsyncManager/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..ccbe64b --- /dev/null +++ b/RsyncManager/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images": [ + { + "idiom": "mac", + "size": "16x16", + "scale": "1x", + "filename": "appicon_16x16@1x.png" + }, + { + "idiom": "mac", + "size": "16x16", + "scale": "2x", + "filename": "appicon_16x16@2x.png" + }, + { + "idiom": "mac", + "size": "32x32", + "scale": "1x", + "filename": "appicon_32x32@1x.png" + }, + { + "idiom": "mac", + "size": "32x32", + "scale": "2x", + "filename": "appicon_32x32@2x.png" + }, + { + "idiom": "mac", + "size": "128x128", + "scale": "1x", + "filename": "appicon_128x128@1x.png" + }, + { + "idiom": "mac", + "size": "128x128", + "scale": "2x", + "filename": "appicon_128x128@2x.png" + }, + { + "idiom": "mac", + "size": "256x256", + "scale": "1x", + "filename": "appicon_256x256@1x.png" + }, + { + "idiom": "mac", + "size": "256x256", + "scale": "2x", + "filename": "appicon_256x256@2x.png" + }, + { + "idiom": "mac", + "size": "512x512", + "scale": "1x", + "filename": "appicon_512x512@1x.png" + }, + { + "idiom": "mac", + "size": "512x512", + "scale": "2x", + "filename": "appicon_512x512@2x.png" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} \ No newline at end of file diff --git a/RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_128x128@1x.png b/RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_128x128@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..01669453b65064bc509fcb9324ff559c2e40e519 GIT binary patch literal 13462 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%0Axq-Y$=jc1*FoYbcAC;vnNWld@?ca8KYeG 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 literal 0 HcmV?d00001 diff --git a/RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_16x16@1x.png b/RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_16x16@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..de6a01b3d815d004addfc8dbff10b138e3e332a1 GIT binary patch literal 596 zcmV-a0;~OrP)8?kcY5Ip{1<~MuM%E zC}QOWZ%GKos3$qMz4!Vpj+c5qW?*Kx_v$J|3MAZ<1kpuMpaha;GLwlC#W1AdE_#uB zkO!lQ5}a@#G4&G?D1v050Cg3xLnD&~ zD`7<*i#(PHA%qyr$;nZe96)fOh-gHQL6lAI&MqG>4($s7-fq^npZ1T8tJUzkFMG}C zo!Ui0^k^hCwI?o|8)-GQ_`JXPVla~H=IN%HHoJ_0!9co1NC-xVC#Ul_8}a7BO_Waw2>3sc!e( z2&X6oiZZoJ%pJ_0eW}hL4fAIj58qV;=BC5cnC>n29I0|RNs}Z&mdO31=1AA>Z~yG3 zOSAFfY-|tw#!~m=Rtb3Jgp4vyFKkJEpv5}XMMN|vsMVCjUjq+Bm)w)~98C?uLu#9p)=Nu?h%W&}MMMkw@>U}MM5BSU?vr!O^ncI+B71dst3(EdvZ zwCq6oA9RrrB#9CYMiK3?yb%;gK#~Fks4(*&3?Lbx5z3*YIXW^r&_whL3=0%)ZZgu0 zmebH#$Qcxv-&J5-YZl=EVW8N>lF(*M*#a1kEZW{7lffuAGou^LNWyHM0ssg>-Mbdn zr?|H*K&=l1fYhRQKD}>`FZR)dBBy~QNh2-C(dLnW0Fy!>6oLW!hwK-;wV7=w-&G>> zN=@j<5*PcZ8zo0FCa1e4XL2StlGza>NreznND&fL2dcnAiGw5F*^1QOsw`KafL?*U zLpGsga6@vYWJR)G;h=BVHVeAbja6W~rob{;;cjl@+G@cKA?)d+pP;rPka8i0Ff5P^ z5pYLxOKyc*N;a;!vd5o0TC5#P`-TSK!8l&M-@JIEzP%BJ%?$xsS@IKy ze6hzDPL_`>+4s&({(7VN=qmp3dOa#F<5=60O1ZNrS#EN`&62YUe(|aPnYB{Fl{?K( z|2e&}9*scKty*2SFP|!(JnSETEL~sk{psKJ#kcB7gTfhrnKG1eMWEvqBg|+<5dFfQ zUQGaAzT15FFXLOA8uhr`x1~N8dVKq#zJGpp`Az`%!sA5%ue=kBJ;K;J+L2gW*>jFE z(hXI^kG#LQc&q;P%d?+coNm`}Vp3sTV^U*W!^vr*pIw@5&M+u&`e*^bNNXMK7>~%8 zOexsWQ?B<<9xqNkTKxXi>c)C}>vaF%h*h*iE3q)VH_?w?oL#xwJiF@0_gmpq+r2w{ zs`ipQ>d3JKFeo_cnS^PB5H4J=7kbu6Z1=$o+qG)p_J#l~_t+~~)fp#uZp&IN7iq2o z-IH0mYGC9ON7DWw>&V3i0m-mF#oupLZjg{Ga_4lHci2t@twjJvOlv)u1mLU7M&jI? zb?MCPlv&%rMhIwFfW)}Mq*5|u8p;l4%*6kWK!Bhs^sjr(Gb_c3L$BYpw`kU-+kZ_KtTEtLGqQ)QU|V%Wp5hf&E< zK@x@Gg(r&7uBDTQ?Qgf5WSRRq-fyelj9rBSCXnRjRLA$58_vEo0r2Eu|K{_(10!zE zv@zA@RGTyHAMooRD^DIa0N37$aV2Heyje$`SAz# z`6rH*r;hlseRkz;+};cbk1pBc2Ysmr0OzhZzqm3>rlyG;K_{(*5kz9vI0$AmY|r9L zCkK!1O{3C&{?g=!=f`ht#%E6S7E3<6>VVJ7Y^%cWUaNj}t#Yb~sHH}bFlU84ZKSR@ ztPuhnl=$Q8)2sLDXI6@(J|8Qn-`x|Wf%;Koe*239rEFU<)7bs(VR8n}^~)*$6XN(f=vKxzvwfS{Fb>od-R zDYcc^b~1oO+#jo7a8!C73WX5@EEJ$cknPygiEM6~Ebs(bx{Vv&pU^#54cX2`U`OA) z{ZI#oT*7aQ+d%vEML bI*I=P7n#?=G-p5a00000NkvXXu0mjf^(8Ke literal 0 HcmV?d00001 diff --git a/RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_256x256@1x.png b/RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_256x256@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..0fce1cfd79e012452848292146263cee560b29cf GIT binary patch literal 35707 zcmV)*K#9MJP)MeK4%y0fU z+xMMwGVgoU)s1SNsCqZ^EZ^CF-*VQZTYl~p^f@X%%J{T@9GaP!Fi zVY~<_-dj%Mlqt&DaW8G@!)Y`Dn^FP};3(6)F4@nrT}m`%1<l0-{)|1hJlpl_H1) z`^#R?r2(M_7M6nddKm8p$$slf4Dg1cp9i@3wV_{#zvxW^%r;PQVvo5HAT6MB6<8pw z5UZGw%Wa&%5t^g&P+7_-{+U9le7YR5X^Dc_lJbCKioUu7Ak#y082z#9dW6t^XzmOB zC@{dyi+)x(Uy6Q4Vv$^*?03&5Ex61o_01e*WJ~YPZ$S2Qxty8R7b95+G6A62qUjKa z-Ct5!kwCvp*U$24skzYO=!FaAKdj1h!_kkF0d89KGnWdN;6bG11dHCROkFyVRg^-6 zP#R7m3{?Tq)>xv+Qty7*zwf3_kV;Z%0Axq-Y$=jc1*FoYbcAC;vnNWld@?ca8KYeG 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 literal 0 HcmV?d00001 diff --git a/RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_256x256@2x.png b/RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_256x256@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..75e61ebe4f5b5bbcde015dd4b9600a63ad8b964d GIT binary patch literal 88718 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 bI*I=P7n#?=G-p5a00000NkvXXu0mjf^(8Ke literal 0 HcmV?d00001 diff --git a/RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_32x32@2x.png b/RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_32x32@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..be6fbfa712072da60f6d08e433ffa18900b1d73a GIT binary patch literal 4836 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 KMNUMnLSTa3kXFP1 literal 0 HcmV?d00001 diff --git a/RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_512x512@1x.png b/RsyncManager/Assets.xcassets/AppIcon.appiconset/appicon_512x512@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..75e61ebe4f5b5bbcde015dd4b9600a63ad8b964d GIT binary patch literal 88718 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%0Dp-3|P~$ASZlJAaVvl+bqND_Fkj8 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 KsvoXe1^ge`gLe1; literal 0 HcmV?d00001 diff --git a/RsyncManager/Assets.xcassets/Contents.json b/RsyncManager/Assets.xcassets/Contents.json new file mode 100644 index 0000000..c47b5f2 --- /dev/null +++ b/RsyncManager/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info": { + "author": "xcode", + "version": 1 + } +} \ No newline at end of file diff --git a/RsyncManager/ContentView.swift b/RsyncManager/ContentView.swift new file mode 100644 index 0000000..35a7ca4 --- /dev/null +++ b/RsyncManager/ContentView.swift @@ -0,0 +1,214 @@ +import SwiftUI +import SwiftData + +struct ContentView: View { + @EnvironmentObject private var automation: BackgroundSyncManager + @Environment(\.openWindow) private var openWindow + @State private var selectedJob: SyncJob? + @State private var section: AppSection = .jobs + @State private var showingNewJob = false + @State private var showingSplash = true + + var body: some View { + ZStack { + mainContent + .opacity(showingSplash ? 0 : 1) + + if showingSplash { + SplashView() + .transition(.opacity.combined(with: .scale(scale: 1.01))) + .zIndex(10) + } + } + .sheet(isPresented: $showingNewJob) { JobEditorView() } + .task { + guard showingSplash else { return } + try? await Task.sleep(for: .seconds(1.0)) + withAnimation(.easeOut(duration: 0.28)) { showingSplash = false } + } + } + + private var mainContent: some View { + VStack(spacing: 0) { + sectionHeader + Divider() + + switch section { + case .jobs: + HSplitView { + JobListView(selection: $selectedJob, showingNewJob: $showingNewJob) + .frame(minWidth: 320, idealWidth: 360, maxWidth: 390) + + Group { + if let selectedJob { + JobDetailView(job: selectedJob) + } else { + emptyJobsView + } + } + .frame(minWidth: 620, maxWidth: .infinity, maxHeight: .infinity) + } + .frame(maxWidth: .infinity, maxHeight: .infinity) + + case .calendar: + ScheduleCalendarView() + + case .history: + RunHistoryView(onBack: { section = .jobs }) + } + } + .background(Color(nsColor: .windowBackgroundColor)) + } + + private var emptyJobsView: some View { + VStack(spacing: 20) { + ZStack { + RoundedRectangle(cornerRadius: 24, style: .continuous) + .fill(Color.accentColor.opacity(0.10)) + .frame(width: 92, height: 92) + Image(systemName: "arrow.triangle.2.circlepath") + .font(.system(size: 42, weight: .medium)) + .foregroundStyle(Color.accentColor) + } + + VStack(spacing: 7) { + Text("Select a Sync Job") + .font(.title2.bold()) + Text("Choose a job from the list to review its paths, automation and recent status.") + .foregroundStyle(.secondary) + .multilineTextAlignment(.center) + .frame(maxWidth: 430) + } + + Button { + showingNewJob = true + } label: { + Label("New Sync Job", systemImage: "plus") + .frame(minWidth: 120) + } + .buttonStyle(.borderedProminent) + .controlSize(.large) + } + .frame(maxWidth: .infinity, maxHeight: .infinity) + .padding(40) + } + + private var sectionHeader: some View { + HStack(spacing: 18) { + HStack(spacing: 11) { + Image(systemName: "arrow.triangle.2.circlepath.circle.fill") + .font(.system(size: 27, weight: .medium)) + .symbolRenderingMode(.hierarchical) + .foregroundStyle(Color.accentColor) + + VStack(alignment: .leading, spacing: 1) { + Text("Rsync Manager") + .font(.headline) + Text(section.subtitle) + .font(.caption) + .foregroundStyle(.secondary) + } + } + + Spacer() + + if automation.activity != .idle { + HStack(spacing: 7) { + AnimatedSyncIndicator(size: 18, lineWidth: 2.6) + Text(automation.activityDisplayTitle) + .font(.caption.weight(.medium)) + .lineLimit(1) + } + .padding(.horizontal, 10) + .padding(.vertical, 6) + .background(.thinMaterial, in: Capsule()) + } + + Picker("Section", selection: $section) { + Label("Jobs", systemImage: "rectangle.stack").tag(AppSection.jobs) + Label("Calendar", systemImage: "calendar").tag(AppSection.calendar) + Label("History", systemImage: "clock.arrow.circlepath").tag(AppSection.history) + } + .pickerStyle(.segmented) + .labelsHidden() + .frame(width: 390) + + Button { + openWindow(id: "help") + } label: { + Label("Help", systemImage: "questionmark.circle") + } + .buttonStyle(.bordered) + .help("Open Rsync Manager Help") + } + .padding(.horizontal, 18) + .frame(height: 70) + .background(.bar) + } +} + +enum AppSection: Hashable { + case jobs, calendar, history + + var subtitle: String { + switch self { + case .jobs: return "Jobs & Automation" + case .calendar: return "Schedule Calendar" + case .history: return "Run History" + } + } +} + + +struct AnimatedSyncIndicator: View { + let size: CGFloat + var lineWidth: CGFloat = 7 + + @State private var rotation = 0.0 + @State private var pulse = false + + var body: some View { + ZStack { + Circle() + .stroke(Color.accentColor.opacity(0.10), lineWidth: lineWidth) + + Circle() + .trim(from: 0.05, to: 0.76) + .stroke( + AngularGradient( + colors: [ + Color.accentColor.opacity(0.18), + Color.accentColor, + Color.accentColor.opacity(0.40) + ], + center: .center + ), + style: StrokeStyle(lineWidth: lineWidth, lineCap: .round) + ) + .rotationEffect(.degrees(rotation)) + + Circle() + .fill(Color.accentColor) + .frame(width: max(4, lineWidth * 1.05), height: max(4, lineWidth * 1.05)) + .offset(y: -(size / 2)) + .rotationEffect(.degrees(rotation + 18)) + + Image(systemName: "arrow.triangle.2.circlepath") + .font(.system(size: size * 0.31, weight: .semibold)) + .foregroundStyle(Color.accentColor) + .scaleEffect(pulse ? 1.04 : 0.94) + .opacity(pulse ? 1 : 0.72) + } + .frame(width: size, height: size) + .onAppear { + rotation = 0 + pulse = false + withAnimation(.linear(duration: 1.15).repeatForever(autoreverses: false)) { + rotation = 360 + } + withAnimation(.easeInOut(duration: 0.9).repeatForever(autoreverses: true)) { + pulse = true + } + } + } +} diff --git a/RsyncManager/Models/SyncJob.swift b/RsyncManager/Models/SyncJob.swift new file mode 100644 index 0000000..bf69352 --- /dev/null +++ b/RsyncManager/Models/SyncJob.swift @@ -0,0 +1,90 @@ +import Foundation +import SwiftData + +@Model +final class SyncJob { + var id: UUID + var name: String + var sourcePath: String + var destinationPath: String + var isRemote: Bool + var remoteHost: String + var remoteUser: String + var remotePort: Int + var sshKeyPath: String + var archive: Bool + var compress: Bool + var deleteExtraneous: Bool + var preservePermissions: Bool + var preserveExtendedAttributes: Bool + var showProgress: Bool + var exclusionsText: String + var additionalArguments: String + var isEnabled: Bool + var createdAt: Date + var updatedAt: Date + var lastRunAt: Date? + var lastExitCode: Int? + var scheduleEnabled: Bool = false + var scheduleKindRaw: String = SyncScheduleKind.manual.rawValue + var scheduleStartAt: Date = Date().addingTimeInterval(3600) + var scheduleIntervalMinutes: Int = 30 + var nextRunAt: Date? = nil + var watchEnabled: Bool = false + var watchPath: String = "" + var watchDebounceSeconds: Int = 3 + var lastWatchEventAt: Date? = nil + + init( + name: String = "New Sync Job", + sourcePath: String = "", + destinationPath: String = "" + ) { + self.id = UUID() + self.name = name + self.sourcePath = sourcePath + self.destinationPath = destinationPath + self.isRemote = false + self.remoteHost = "" + self.remoteUser = "" + self.remotePort = 22 + self.sshKeyPath = "" + self.archive = true + self.compress = false + self.deleteExtraneous = false + self.preservePermissions = true + self.preserveExtendedAttributes = true + self.showProgress = true + self.exclusionsText = "" + self.additionalArguments = "" + self.isEnabled = true + self.createdAt = Date() + self.updatedAt = Date() + self.lastRunAt = nil + self.lastExitCode = nil + self.scheduleEnabled = false + self.scheduleKindRaw = SyncScheduleKind.manual.rawValue + self.scheduleStartAt = Date().addingTimeInterval(3600) + self.scheduleIntervalMinutes = 30 + self.nextRunAt = nil + self.watchEnabled = false + self.watchPath = "" + self.watchDebounceSeconds = 3 + self.lastWatchEventAt = nil + } + + var exclusions: [String] { + exclusionsText + .split(whereSeparator: \.isNewline) + .map { $0.trimmingCharacters(in: .whitespacesAndNewlines) } + .filter { !$0.isEmpty } + } + + var destinationDisplay: String { + if isRemote { + let userPrefix = remoteUser.isEmpty ? "" : "\(remoteUser)@" + return "\(userPrefix)\(remoteHost):\(destinationPath)" + } + return destinationPath + } +} diff --git a/RsyncManager/Models/SyncRun.swift b/RsyncManager/Models/SyncRun.swift new file mode 100644 index 0000000..d62a7c5 --- /dev/null +++ b/RsyncManager/Models/SyncRun.swift @@ -0,0 +1,129 @@ +import Foundation +import SwiftData + +@Model +final class SyncRun { + var id: UUID + var jobID: UUID + var jobName: String + var startedAt: Date + var finishedAt: Date? + var command: String + var output: String + var errorOutput: String + var exitCode: Int? + var wasDryRun: Bool + var wasCancelled: Bool + var triggerRaw: String = SyncRunTrigger.manual.rawValue + + init(job: SyncJob, command: String, wasDryRun: Bool, trigger: SyncRunTrigger = .manual) { + self.id = UUID() + self.jobID = job.id + self.jobName = job.name + self.startedAt = Date() + self.command = command + self.output = "" + self.errorOutput = "" + self.exitCode = nil + self.wasDryRun = wasDryRun + self.wasCancelled = false + self.triggerRaw = trigger.rawValue + } + + var trigger: SyncRunTrigger { SyncRunTrigger(rawValue: triggerRaw) ?? .manual } + var succeeded: Bool { exitCode == 0 && !wasCancelled } + var isRunning: Bool { finishedAt == nil } + + var duration: TimeInterval? { + guard let finishedAt else { return nil } + return finishedAt.timeIntervalSince(startedAt) + } + + var summary: RsyncSummary { + RsyncSummary.parse(output + "\n" + errorOutput) + } + + var exportText: String { + var text = "Rsync Manager Run Log\n" + text += "Job: \(jobName)\n" + text += "Started: \(startedAt.formatted(date: .complete, time: .standard))\n" + if let finishedAt { text += "Finished: \(finishedAt.formatted(date: .complete, time: .standard))\n" } + text += "Trigger: \(trigger.title)\n" + text += "Dry run: \(wasDryRun ? "Yes" : "No")\n" + text += "\nCommand\n-------\n$ \(command)\n\nOutput\n------\n" + if !output.isEmpty { text += output } + if !errorOutput.isEmpty { + if !text.hasSuffix("\n") { text += "\n" } + text += "\n--- stderr ---\n\(errorOutput)" + } + if let exitCode { + if !text.hasSuffix("\n") { text += "\n" } + text += "\nExit code: \(exitCode)\n" + } + return text + } +} + +struct RsyncSummary: Equatable { + var numberOfFiles: String? + var numberOfFilesTransferred: String? + var totalFileSize: String? + var totalTransferredFileSize: String? + var unmatchedData: String? + var matchedData: String? + var fileListSize: String? + var fileListGenerationTime: String? + var fileListTransferTime: String? + var totalSent: String? + var totalReceived: String? + var transferRate: String? + var totalSizeAndSpeedup: String? + + var hasStatistics: Bool { + [ + numberOfFiles, + numberOfFilesTransferred, + totalFileSize, + totalTransferredFileSize, + totalSent, + totalReceived + ].contains { $0 != nil } + } + + static func parse(_ text: String) -> RsyncSummary { + var result = RsyncSummary() + + for rawLine in text.components(separatedBy: .newlines) { + let line = rawLine.trimmingCharacters(in: .whitespacesAndNewlines) + guard !line.isEmpty else { continue } + + func value(after prefix: String) -> String? { + guard line.hasPrefix(prefix) else { return nil } + return String(line.dropFirst(prefix.count)).trimmingCharacters(in: .whitespaces) + } + + if let value = value(after: "Number of files:") { result.numberOfFiles = value; continue } + if let value = value(after: "Number of files transferred:") { result.numberOfFilesTransferred = value; continue } + if let value = value(after: "Total file size:") { result.totalFileSize = value; continue } + if let value = value(after: "Total transferred file size:") { result.totalTransferredFileSize = value; continue } + if let value = value(after: "Unmatched data:") { result.unmatchedData = value; continue } + if let value = value(after: "Matched data:") { result.matchedData = value; continue } + if let value = value(after: "File list size:") { result.fileListSize = value; continue } + if let value = value(after: "File list generation time:") { result.fileListGenerationTime = value; continue } + if let value = value(after: "File list transfer time:") { result.fileListTransferTime = value; continue } + if let value = value(after: "Total sent:") { result.totalSent = value; continue } + if let value = value(after: "Total received:") { result.totalReceived = value; continue } + + if line.hasPrefix("sent "), line.contains(" bytes/sec") { + result.transferRate = line + continue + } + + if line.hasPrefix("total size is "), line.contains("speedup is") { + result.totalSizeAndSpeedup = line + } + } + + return result + } +} diff --git a/RsyncManager/Models/SyncSchedule.swift b/RsyncManager/Models/SyncSchedule.swift new file mode 100644 index 0000000..0a13809 --- /dev/null +++ b/RsyncManager/Models/SyncSchedule.swift @@ -0,0 +1,142 @@ +import Foundation + +enum SyncScheduleKind: String, CaseIterable, Identifiable, Codable { + case manual + case once + case hourly + case daily + case weekly + case monthly + case custom + + var id: String { rawValue } + + var title: String { + switch self { + case .manual: return "Manual only" + case .once: return "Once" + case .hourly: return "Hourly" + case .daily: return "Daily" + case .weekly: return "Weekly" + case .monthly: return "Monthly" + case .custom: return "Custom interval" + } + } + + var systemImage: String { + switch self { + case .manual: return "hand.tap" + case .once: return "calendar.badge.clock" + case .hourly: return "clock.arrow.circlepath" + case .daily: return "sun.max" + case .weekly: return "calendar" + case .monthly: return "calendar.circle" + case .custom: return "timer" + } + } +} + +enum SyncRunTrigger: String, Codable { + case manual + case scheduled + case watched + case syncAll + + var title: String { + switch self { + case .manual: return "Manual" + case .scheduled: return "Scheduled" + case .watched: return "File change" + case .syncAll: return "Sync All" + } + } + + var systemImage: String { + switch self { + case .manual: return "play.fill" + case .scheduled: return "calendar.badge.clock" + case .watched: return "eye.fill" + case .syncAll: return "arrow.triangle.2.circlepath" + } + } +} + +extension SyncJob { + var scheduleKind: SyncScheduleKind { + get { SyncScheduleKind(rawValue: scheduleKindRaw) ?? .manual } + set { scheduleKindRaw = newValue.rawValue } + } + + var effectiveWatchPath: String { + let trimmed = watchPath.trimmingCharacters(in: .whitespacesAndNewlines) + return trimmed.isEmpty ? sourcePath : trimmed + } + + var scheduleDescription: String { + guard scheduleEnabled, scheduleKind != .manual else { return "Manual" } + let time = scheduleStartAt.formatted(date: .omitted, time: .shortened) + switch scheduleKind { + case .manual: return "Manual" + case .once: return "Once · \(scheduleStartAt.formatted(date: .abbreviated, time: .shortened))" + case .hourly: return "Every hour" + case .daily: return "Daily · \(time)" + case .weekly: + return "Weekly · \(scheduleStartAt.formatted(.dateTime.weekday(.abbreviated))) · \(time)" + case .monthly: + return "Monthly · day \(Calendar.current.component(.day, from: scheduleStartAt)) · \(time)" + case .custom: + return "Every \(max(1, scheduleIntervalMinutes)) min" + } + } + + func calculateNextRun(after date: Date = Date()) -> Date? { + guard scheduleEnabled, scheduleKind != .manual else { return nil } + let calendar = Calendar.current + + switch scheduleKind { + case .manual: + return nil + case .once: + return scheduleStartAt > date ? scheduleStartAt : nil + case .hourly: + return nextInterval(after: date, seconds: 3600) + case .custom: + return nextInterval(after: date, seconds: TimeInterval(max(1, scheduleIntervalMinutes) * 60)) + case .daily: + let time = calendar.dateComponents([.hour, .minute, .second], from: scheduleStartAt) + return calendar.nextDate(after: date, matching: time, matchingPolicy: .nextTime) + case .weekly: + var components = calendar.dateComponents([.hour, .minute, .second], from: scheduleStartAt) + components.weekday = calendar.component(.weekday, from: scheduleStartAt) + return calendar.nextDate(after: date, matching: components, matchingPolicy: .nextTime) + case .monthly: + var components = calendar.dateComponents([.hour, .minute, .second], from: scheduleStartAt) + components.day = calendar.component(.day, from: scheduleStartAt) + return calendar.nextDate(after: date, matching: components, matchingPolicy: .nextTime) + } + } + + func occurrences(from start: Date, through end: Date, limit: Int = 400) -> [Date] { + guard scheduleEnabled, scheduleKind != .manual, start < end else { return [] } + var output: [Date] = [] + var cursor = start.addingTimeInterval(-1) + + if scheduleKind == .once { + return (scheduleStartAt >= start && scheduleStartAt < end) ? [scheduleStartAt] : [] + } + + while output.count < limit, let next = calculateNextRun(after: cursor), next < end { + if next >= start { output.append(next) } + cursor = next.addingTimeInterval(0.5) + } + return output + } + + private func nextInterval(after date: Date, seconds: TimeInterval) -> Date? { + guard seconds > 0 else { return nil } + if scheduleStartAt > date { return scheduleStartAt } + let elapsed = date.timeIntervalSince(scheduleStartAt) + let steps = floor(elapsed / seconds) + 1 + return scheduleStartAt.addingTimeInterval(steps * seconds) + } +} diff --git a/RsyncManager/Resources/RsyncManagerHelp.md b/RsyncManager/Resources/RsyncManagerHelp.md new file mode 100644 index 0000000..cc659fe --- /dev/null +++ b/RsyncManager/Resources/RsyncManagerHelp.md @@ -0,0 +1,513 @@ +# Rsync Manager Help + +Rsync Manager is a macOS front end for `rsync`. It can run local copies, SSH-based remote synchronisation, dry runs, scheduled jobs, and file/folder watch jobs. Every run is recorded in History with the command, result and transfer statistics. + +## 1. Before You Start + +Rsync Manager looks for rsync in this order: + +1. `/opt/homebrew/bin/rsync` +2. `/usr/local/bin/rsync` +3. `/usr/bin/rsync` + +For the best compatibility with modern Linux servers, install a current rsync using Homebrew. The macOS supplied `/usr/bin/rsync` is older and behaves differently for some extended-attribute options. + +SSH jobs also require the normal macOS `ssh` client and network access to the remote computer. + +## 2. Create a Local Sync Job + +1. Select **New Sync Job**. +2. Give the job a descriptive name, for example `Documents Backup`. +3. Choose **Local** as the destination type. +4. Select the source folder. +5. Select the destination folder. +6. Choose the required rsync options. +7. Save the job. +8. Run **Dry Run** first, then use **Run Now** when the result looks correct. + +### Example + +Source: + +`/Users/mag/Documents/` + +Destination: + +`/Volumes/Backup/Documents/` + +A typical job using Archive mode is equivalent to: + +`rsync -a --human-readable --stats /Users/mag/Documents/ /Volumes/Backup/Documents/` + +### Trailing slash behaviour + +Rsync treats these differently: + +`/Users/mag/Documents/` + +copies the **contents** of Documents into the destination. + +`/Users/mag/Documents` + +copies the **Documents directory itself** into the destination. + +Check the source carefully before enabling Delete mode. + +## 3. Create an SSH Remote Job + +1. Create or edit a job. +2. Select **SSH Remote**. +3. Enter the remote host, for example `192.168.1.2` or `pegasus.local`. +4. Enter the SSH username, for example `mag`. +5. Set the SSH port, normally `22`. +6. Select a **private** SSH key if required. +7. Enter a remote destination path such as `/home/mag/backups/Documents`. +8. Save and run a Dry Run. + +### Correct remote example + +Host: `pegasus.local` + +Username: `mag` + +Destination: `/home/mag/backups/photos` + +The resulting destination is similar to: + +`mag@pegasus.local:/home/mag/backups/photos` + +### Incorrect remote destination + +Do not put the host address in the Destination field. These are wrong: + +`192.168.1.2` + +`mag@192.168.1.2` + +The Destination field must contain a path on the remote machine. + +## 4. SSH Keys + +Use the private key, not the `.pub` file. + +Correct examples: + +`~/.ssh/id_ed25519` + +`~/.ssh/id_rsa` + +Incorrect: + +`~/.ssh/id_ed25519.pub` + +If you accidentally select a `.pub` key and the matching private key exists beside it, Rsync Manager attempts to use the private key. If only the public key exists, the run is rejected. + +### Test SSH outside the app + +Before troubleshooting rsync, verify SSH itself works: + +`ssh -p 22 -i ~/.ssh/id_ed25519 mag@pegasus.local` + +If that command cannot connect, fix SSH/network/authentication first. + +## 5. Default Connection Settings + +Open **Rsync Manager > Settings > Connections** to configure defaults for new SSH jobs: + +- Default username +- Default host +- Default SSH port +- Default private key +- Default password storage + +Passwords are stored in macOS Keychain, not SwiftData or UserDefaults. Current rsync execution is designed primarily around SSH keys or an SSH agent; a stored password is not placed on the command line. + +## 6. Rsync Options + +### Archive + +Archive mode (`-a`) is the normal choice for directory backup/synchronisation. It recursively copies files and preserves common metadata. + +### Compress + +Compress (`-z`) can help on slower network links. It is often unnecessary for local copies or already-compressed files such as JPEG, ZIP and video. + +### Delete Extraneous Files + +Delete mode (`--delete`) removes destination files that no longer exist at the source. + +**Use Dry Run before enabling a destructive sync.** A mistaken source or destination combined with Delete can remove destination data. + +### Preserve Permissions + +Preserves permissions when Archive mode is not being used. + +### Extended Attributes + +On modern rsync, Rsync Manager uses `-X`. With Apple `/usr/bin/rsync`, local jobs use the Apple-compatible `-E` form. For SSH to modern Linux rsync, the Apple-only extended attribute flag is omitted to avoid an incompatible remote option. + +### Exclusions + +Add patterns for files or directories you do not want transferred. + +Examples: + +`.DS_Store` + +`*.tmp` + +`node_modules/` + +`.git/` + +### Additional arguments + +Advanced rsync options can be entered as additional arguments. Use this only when you understand the rsync option and its effect. + +Example: + +`--max-size=2G` + +## 7. Dry Run + +Dry Run adds `--dry-run`. Rsync reports what it **would** change without transferring or deleting files. + +Use Dry Run when: + +- Creating a new job +- Changing source or destination paths +- Enabling Delete +- Changing exclusions +- Changing SSH destinations +- Testing a large sync + +The summary window shows files checked, files that would transfer, data size and transfer statistics. + +## 8. Run Now + +Select a job and choose **Run Now**. Manual runs display a progress/result sheet. The complete stdout/stderr output is retained in History. + +Only one rsync process is run by the current runner at a time. If another run is already active, a second job waits for the automation manager or is rejected for a direct manual launch depending on how it was triggered. + +## 9. Scheduling Jobs + +Edit a job and enable **Schedule**. + +Available schedule types include: + +- Once +- Hourly +- Daily +- Weekly +- Monthly +- Custom interval + +Scheduled runs execute without displaying the manual progress sheet. Results still appear in History. + +### Daily example + +Job: `Nightly Documents` + +Schedule: Daily + +Start time: `23:30` + +Result: the job runs each day at approximately the configured application schedule time while Rsync Manager is running. + +### Weekly example + +Job: `Weekly Photos` + +Schedule: Weekly + +Choose the desired start date/time. The application calculates and displays the next run. + +### Custom interval example + +Set a custom interval of `30` minutes to request a run every 30 minutes. + +Avoid extremely short intervals for large jobs. A new run should not repeatedly start before the previous transfer has finished. + +## 10. Calendar + +Select **Calendar** at the top of the main window. + +The calendar shows scheduled jobs by date and allows you to review upcoming automated work. Use it to confirm that a newly edited schedule produces the next run you expected. + +If a job does not appear: + +1. Confirm the job is enabled. +2. Confirm Schedule is enabled for that job. +3. Confirm the start date is valid. +4. Return to the job and check the displayed **Next scheduled run** value. + +## 11. Watch for File or Folder Changes + +Edit a job and enable **File Watching**. + +Rsync Manager uses macOS FSEvents rather than repeatedly scanning the whole directory tree. + +### Watch the job source directory + +Leave the custom watch path empty. The job source is watched automatically. + +Example source: + +`/Users/mag/Developer/MyProject/` + +When changes occur beneath that directory, the watch service debounces the events and triggers the configured sync. + +### Watch one specific file + +Set the watch path to a specific file, for example: + +`/Users/mag/Documents/config.json` + +The service watches the containing directory and filters events so only changes affecting that file trigger the job. + +### Debounce + +Applications often save a file several times in quick succession. The debounce period groups those events into one rsync run. + +Example: + +Debounce: `5 seconds` + +Saving 10 files over a three-second period results in a single sync after activity settles, rather than 10 separate rsync processes. + +### Good watch-job examples + +- Sync a development project to a test server after edits. +- Mirror a document directory to a local backup disk. +- Upload generated reports when files change. +- Synchronise a configuration directory to another Mac or Linux machine. + +### Avoid watch loops + +Do not configure the destination inside the watched source tree. Otherwise rsync's own writes can generate more filesystem events and repeatedly trigger the job. + +Bad example: + +Source: `/Users/mag/Data/` + +Destination: `/Users/mag/Data/Backup/` + +Prefer a destination outside the watched source hierarchy. + +## 12. Background Operation + +Scheduled and file-watch jobs run without opening the manual progress sheet. The application must still be running for its scheduler and FSEvents watchers to operate. + +Enable **Launch at Login** in Settings if you want Rsync Manager to start automatically after you sign in to macOS. You can then close or minimise the main window while the app continues running. + +Quitting Rsync Manager stops in-process schedules and file watching until the application starts again. + +## 13. Jobs Screen + +The Jobs screen is the main status dashboard. Each job shows its key automation and run state. + +Use the filters to review: + +- All jobs +- Scheduled jobs +- Watching jobs +- Jobs with issues + +Select a job to open its full detail view. The **Edit Job** button remains fixed at the top of the detail pane so it is available even after scrolling or on narrower windows. + +## 14. History + +Select **History** to review completed runs. + +History records whether the run was started by: + +- Manual action +- Schedule +- File change + +Select a run to inspect: + +- Start/end time +- Exit status +- rsync command +- Transfer summary +- stdout +- stderr +- Dry-run state + +Use **Export Log** from the run result/detail view when you need a text copy for troubleshooting or auditing. + +## 15. Common Rsync Exit Codes + +`0` — Success. + +`1` — Syntax or usage error. + +`2` — Protocol incompatibility. + +`3` — File selection/input-output errors. + +`10` — Socket I/O error. + +`11` — File I/O error. + +`12` — Error in rsync protocol data stream. + +`23` — Partial transfer due to error. + +`24` — Partial transfer because source files vanished during the run. + +`30` — Timeout in data send/receive. + +Always inspect stderr in History for the actual diagnostic message. + +## 16. Troubleshooting + +### Permission denied + +Check that the macOS user running Rsync Manager can read the source and write to the destination. For remote jobs, check permissions for the remote SSH user. + +### Host key verification failed + +Connect once using Terminal: + +`ssh mag@pegasus.local` + +Verify the host fingerprint and allow SSH to update `~/.ssh/known_hosts`. + +Do not disable host-key verification simply to hide this warning. + +### Public key authentication failed + +Check: + +- The private key path is correct. +- The remote user's `~/.ssh/authorized_keys` contains the matching public key. +- File permissions on the remote `.ssh` directory/key files are valid. +- The SSH username is correct. + +### Remote rsync option error + +If you are using `/usr/bin/rsync` on macOS against modern Linux, avoid manually adding Apple-specific rsync options. Installing Homebrew rsync provides better modern compatibility. + +### Nothing transfers + +Run a Dry Run and inspect the command and output. Check exclusions, trailing slash behaviour and whether source/destination already contain identical data. + +### Watch job does not trigger + +Check that: + +- The job is enabled. +- Global file watching is enabled in Settings. +- File Watching is enabled on the job. +- The watch path exists. +- Rsync Manager is still running. +- The change occurred beneath the watched path, or matches the selected single file. + +### Schedule does not run + +Check that: + +- Global scheduling is enabled in Settings. +- The job itself is enabled. +- Schedule is enabled for the job. +- The displayed next-run time is correct. +- Rsync Manager is running at the scheduled time. + +## 17. Recommended Backup Workflow + +For an important backup job: + +1. Create the job without Delete enabled. +2. Run a Dry Run. +3. Review the source and destination in the generated command. +4. Run the job manually. +5. Check History for exit code 0. +6. Verify several files at the destination. +7. Only then enable a schedule. +8. Enable Delete only when you specifically require a mirror and understand the deletion behaviour. + +Rsync synchronisation is not automatically a versioned backup. If the destination mirrors source deletions, it does not replace a separate versioned/offline backup strategy. + +## 18. Example Configurations + +### Local external-drive backup + +Name: `Documents to USB` + +Source: `/Users/mag/Documents/` + +Destination: `/Volumes/Backup/Documents/` + +Archive: On + +Delete: Off initially + +Schedule: Daily at 22:00 + +### Mac to Linux server + +Name: `Projects to Pegasus` + +Source: `/Users/mag/Developer/` + +Host: `pegasus.local` + +User: `mag` + +Port: `22` + +Private key: `/Users/mag/.ssh/id_ed25519` + +Remote destination: `/home/mag/backups/Developer/` + +Archive: On + +Compress: On + +Schedule: Daily + +### Live project watcher + +Name: `Website Live Sync` + +Source: `/Users/mag/Sites/MySite/` + +Remote destination: `/var/www/mysite/` + +Watch: On + +Watch path: leave empty to watch the source + +Debounce: 5 seconds + +Exclusions: `.git/`, `node_modules/`, `.DS_Store` + +Use this style only when automatic deployment to that destination is intentional. + +## 19. Safety Checklist + +Before running a new job, confirm: + +- Source is correct. +- Destination is correct. +- Remote host/user are correct. +- The selected SSH key is private, not `.pub`. +- Delete mode is intentional. +- Exclusions are correct. +- Dry Run output looks correct. +- The destination has enough free space. +- A watch destination is not inside its watched source. + +## 20. Getting Help Information from the App + +Select the **Help** button in the main Rsync Manager header. The bundled guide you are reading opens inside the application and is available without an Internet connection. + +For an rsync-specific option not documented here, run `man rsync` in Terminal for the version of rsync installed on your Mac. Behaviour can differ between the Apple-supplied rsync and current Homebrew rsync. + + +## Sync All + +Use **Sync All** in the Jobs sidebar to run every enabled job in sequence. Rsync Manager queues the jobs rather than starting several rsync processes at once. Each job creates its own History entry, and the header shows the current batch progress. Disabled jobs are skipped. + diff --git a/RsyncManager/RsyncManagerApp.swift b/RsyncManager/RsyncManagerApp.swift new file mode 100644 index 0000000..09b8826 --- /dev/null +++ b/RsyncManager/RsyncManagerApp.swift @@ -0,0 +1,64 @@ +import SwiftUI +import SwiftData + +@main +@MainActor +struct RsyncManagerApp: App { + let sharedModelContainer: ModelContainer + @StateObject private var runner: RsyncRunner + @StateObject private var automation: BackgroundSyncManager + + init() { + let schema = Schema([ + SyncJob.self, + SyncRun.self, + ]) + let configuration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false) + do { + let container = try ModelContainer(for: schema, configurations: [configuration]) + sharedModelContainer = container + let rsyncRunner = RsyncRunner() + _runner = StateObject(wrappedValue: rsyncRunner) + _automation = StateObject(wrappedValue: BackgroundSyncManager(modelContext: container.mainContext, runner: rsyncRunner)) + } catch { + fatalError("Could not create ModelContainer: \(error)") + } + } + + var body: some Scene { + WindowGroup { + ContentView() + .frame(minWidth: 1040, minHeight: 680) + .environmentObject(runner) + .environmentObject(automation) + .onAppear { automation.start() } + } + .modelContainer(sharedModelContainer) + .commands { + RsyncManagerCommands() + } + + Window("Rsync Manager Help", id: "help") { + HelpView() + } + .defaultSize(width: 940, height: 780) + + Settings { + SettingsView() + .environmentObject(automation) + } + } +} + +private struct RsyncManagerCommands: Commands { + @Environment(\.openWindow) private var openWindow + + var body: some Commands { + CommandGroup(replacing: .help) { + Button("Rsync Manager Help") { + openWindow(id: "help") + } + .keyboardShortcut("?", modifiers: [.command]) + } + } +} diff --git a/RsyncManager/Services/BackgroundSyncManager.swift b/RsyncManager/Services/BackgroundSyncManager.swift new file mode 100644 index 0000000..33229ce --- /dev/null +++ b/RsyncManager/Services/BackgroundSyncManager.swift @@ -0,0 +1,245 @@ +import Foundation +import SwiftData + +@MainActor +final class BackgroundSyncManager: ObservableObject { + enum Activity: Equatable { + case idle + case waiting(String) + case running(String) + + var title: String { + switch self { + case .idle: return "Idle" + case .waiting(let name): return "Waiting · \(name)" + case .running(let name): return "Running · \(name)" + } + } + } + + @Published private(set) var activity: Activity = .idle + @Published private(set) var watchedJobCount = 0 + @Published private(set) var scheduledJobCount = 0 + @Published private(set) var isSyncAllRunning = false + @Published private(set) var syncAllCompleted = 0 + @Published private(set) var syncAllTotal = 0 + + var activityDisplayTitle: String { + if isSyncAllRunning { + return "Sync All · \(min(syncAllCompleted + 1, syncAllTotal)) of \(syncAllTotal)" + } + return activity.title + } + + private let modelContext: ModelContext + private let runner: RsyncRunner + private let watcher = FileWatchService() + private var timer: Timer? + private var pending: [(UUID, SyncRunTrigger)] = [] + private var pendingIDs = Set() + private var isProcessingQueue = false + private var watchDebounceTasks: [UUID: Task] = [:] + private var started = false + private var notificationToken: NSObjectProtocol? + + init(modelContext: ModelContext, runner: RsyncRunner) { + self.modelContext = modelContext + self.runner = runner + watcher.onChange = { [weak self] jobID, path in + Task { @MainActor [weak self] in + self?.fileChanged(jobID: jobID, path: path) + } + } + notificationToken = NotificationCenter.default.addObserver( + forName: .syncJobsChanged, + object: nil, + queue: .main + ) { [weak self] _ in + Task { @MainActor [weak self] in self?.refreshConfiguration() } + } + } + + deinit { + if let notificationToken { NotificationCenter.default.removeObserver(notificationToken) } + } + + func start() { + guard !started else { return } + started = true + refreshConfiguration() + checkSchedules() + timer = Timer.scheduledTimer(withTimeInterval: 20, repeats: true) { [weak self] _ in + Task { @MainActor [weak self] in + self?.refreshConfiguration() + self?.checkSchedules() + self?.processQueue() + } + } + } + + func stop() { + timer?.invalidate() + timer = nil + watcher.stop() + watchDebounceTasks.values.forEach { $0.cancel() } + watchDebounceTasks.removeAll() + started = false + } + + func syncAllEnabledJobs() { + guard !isSyncAllRunning else { return } + + let enabledJobs = fetchJobs().filter(\.isEnabled) + syncAllCompleted = 0 + syncAllTotal = 0 + + for job in enabledJobs { + if enqueue(jobID: job.id, trigger: .syncAll) { + syncAllTotal += 1 + } + } + + isSyncAllRunning = syncAllTotal > 0 + if !isSyncAllRunning { + syncAllCompleted = 0 + } + } + + func refreshConfiguration() { + let jobs = fetchJobs() + scheduledJobCount = jobs.filter { $0.isEnabled && $0.scheduleEnabled && $0.scheduleKind != .manual }.count + watchedJobCount = jobs.filter { $0.isEnabled && $0.watchEnabled }.count + + if UserDefaults.standard.object(forKey: "fileWatchingEnabled") as? Bool ?? true { + watcher.update(jobs: jobs) + } else { + watcher.update(jobs: []) + } + + for job in jobs where job.scheduleEnabled && job.scheduleKind != .manual && job.nextRunAt == nil { + job.nextRunAt = job.calculateNextRun(after: Date().addingTimeInterval(-1)) + } + try? modelContext.save() + } + + private func checkSchedules() { + guard UserDefaults.standard.object(forKey: "backgroundSchedulesEnabled") as? Bool ?? true else { return } + let now = Date() + for job in fetchJobs() where job.isEnabled && job.scheduleEnabled && job.scheduleKind != .manual { + guard let next = job.nextRunAt, next <= now else { continue } + enqueue(jobID: job.id, trigger: .scheduled) + + if job.scheduleKind == .once { + job.scheduleEnabled = false + job.nextRunAt = nil + } else { + job.nextRunAt = job.calculateNextRun(after: now) + } + } + try? modelContext.save() + } + + private func fileChanged(jobID: UUID, path: String) { + guard UserDefaults.standard.object(forKey: "fileWatchingEnabled") as? Bool ?? true else { return } + guard let job = fetchJob(id: jobID), job.isEnabled, job.watchEnabled else { return } + job.lastWatchEventAt = Date() + watchDebounceTasks[jobID]?.cancel() + let delay = max(1, job.watchDebounceSeconds) + watchDebounceTasks[jobID] = Task { [weak self] in + try? await Task.sleep(for: .seconds(delay)) + guard !Task.isCancelled, let self else { return } + _ = self.enqueue(jobID: jobID, trigger: .watched) + } + try? modelContext.save() + } + + @discardableResult + private func enqueue(jobID: UUID, trigger: SyncRunTrigger) -> Bool { + guard !pendingIDs.contains(jobID), runner.currentJobID != jobID else { return false } + pending.append((jobID, trigger)) + pendingIDs.insert(jobID) + processQueue() + return true + } + + private func processQueue() { + guard !isProcessingQueue, !runner.isRunning, !pending.isEmpty else { + if (isProcessingQueue || runner.isRunning), let first = pending.first, let job = fetchJob(id: first.0) { + activity = .waiting(job.name) + } + return + } + + let item = pending.removeFirst() + pendingIDs.remove(item.0) + guard let job = fetchJob(id: item.0), job.isEnabled else { + finishSyncAllItemIfNeeded(item.1) + processQueue() + return + } + + isProcessingQueue = true + activity = .running(job.name) + Task { [weak self] in + await self?.execute(job: job, trigger: item.1) + await MainActor.run { + guard let self else { return } + self.finishSyncAllItemIfNeeded(item.1) + self.isProcessingQueue = false + self.activity = .idle + self.processQueue() + } + } + } + + private func finishSyncAllItemIfNeeded(_ trigger: SyncRunTrigger) { + switch trigger { + case .syncAll: + syncAllCompleted += 1 + if syncAllCompleted >= syncAllTotal { + isSyncAllRunning = false + } + case .manual, .scheduled, .watched: + break + } + } + + private func execute(job: SyncJob, trigger: SyncRunTrigger) async { + let executable = RsyncLocator.locate() + let command = RsyncCommandBuilder.displayCommand(job: job, dryRun: false, executable: executable) + let run = SyncRun(job: job, command: command, wasDryRun: false, trigger: trigger) + modelContext.insert(run) + try? modelContext.save() + + do { + let result = try await runner.run(job: job, dryRun: false) + run.output = result.stdout + run.errorOutput = result.stderr + run.exitCode = Int(result.exitCode) + run.wasCancelled = result.wasCancelled + run.finishedAt = Date() + job.lastRunAt = run.finishedAt + job.lastExitCode = Int(result.exitCode) + job.updatedAt = Date() + } catch { + run.errorOutput = error.localizedDescription + run.exitCode = -1 + run.finishedAt = Date() + job.lastRunAt = run.finishedAt + job.lastExitCode = -1 + } + try? modelContext.save() + } + + private func fetchJobs() -> [SyncJob] { + (try? modelContext.fetch(FetchDescriptor(sortBy: [SortDescriptor(\SyncJob.name)]))) ?? [] + } + + private func fetchJob(id: UUID) -> SyncJob? { + fetchJobs().first { $0.id == id } + } +} + +extension Notification.Name { + static let syncJobsChanged = Notification.Name("RsyncManager.syncJobsChanged") +} diff --git a/RsyncManager/Services/FileWatchService.swift b/RsyncManager/Services/FileWatchService.swift new file mode 100644 index 0000000..a4e66ac --- /dev/null +++ b/RsyncManager/Services/FileWatchService.swift @@ -0,0 +1,94 @@ +import Foundation +import CoreServices + +final class FileWatchService { + typealias ChangeHandler = @Sendable (UUID, String) -> Void + + private struct WatchTarget: Equatable { + let targetPath: String + let streamRoot: String + let isDirectory: Bool + } + + private var stream: FSEventStreamRef? + private var watchedTargets: [UUID: WatchTarget] = [:] + private let queue = DispatchQueue(label: "net.absdev.RsyncManager.fsevents", qos: .utility) + var onChange: ChangeHandler? + + deinit { stop() } + + func update(jobs: [SyncJob]) { + var targets: [UUID: WatchTarget] = [:] + for job in jobs where job.isEnabled && job.watchEnabled { + let path = (job.effectiveWatchPath as NSString).expandingTildeInPath + guard !path.isEmpty else { continue } + + var isDirectory: ObjCBool = false + let exists = FileManager.default.fileExists(atPath: path, isDirectory: &isDirectory) + let directory = exists ? isDirectory.boolValue : true + let streamRoot = directory ? path : (path as NSString).deletingLastPathComponent + targets[job.id] = WatchTarget(targetPath: path, streamRoot: streamRoot, isDirectory: directory) + } + guard targets != watchedTargets else { return } + watchedTargets = targets + rebuild() + } + + func stop() { + if let stream { + FSEventStreamStop(stream) + FSEventStreamInvalidate(stream) + FSEventStreamRelease(stream) + self.stream = nil + } + } + + private func rebuild() { + stop() + let paths = Array(Set(watchedTargets.values.map(\.streamRoot))) + guard !paths.isEmpty else { return } + + var context = FSEventStreamContext( + version: 0, + info: Unmanaged.passUnretained(self).toOpaque(), + retain: nil, + release: nil, + copyDescription: nil + ) + + let callback: FSEventStreamCallback = { _, info, count, eventPaths, _, _ in + guard let info else { return } + let service = Unmanaged.fromOpaque(info).takeUnretainedValue() + let paths = unsafeBitCast(eventPaths, to: NSArray.self) as? [String] ?? [] + for index in 0.. [String] { + var args: [String] = [] + + if job.archive { + args.append("-a") + } else if job.preservePermissions { + args.append("-p") + } + + if job.compress { args.append("-z") } + + // Apple's bundled /usr/bin/rsync uses the Apple-specific -E flag for + // extended attributes. That flag is not compatible with a standard + // rsync server over SSH (for example Linux rsync 3.x), because Apple + // rsync expands it to --extended-attributes on the remote side. + // + // Therefore: + // • Apple rsync + local job -> -E + // • Apple rsync + SSH job -> omit xattr flag + // • Modern/Homebrew rsync -> -X (standard rsync xattrs) + if job.preserveExtendedAttributes { + if isAppleRsync(executable) { + if !job.isRemote { + args.append("-E") + } + } else { + args.append("-X") + } + } + + if job.deleteExtraneous { args.append("--delete") } + + // --info=progress2 is not supported by Apple's bundled rsync 2.6.9. + // --progress works on both Apple's rsync and modern Homebrew rsync. + if job.showProgress { args.append("--progress") } + + if dryRun { args.append("--dry-run") } + + args += ["--human-readable", "--stats"] + + for exclusion in job.exclusions { + args.append("--exclude=\(exclusion)") + } + + if !job.additionalArguments.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { + args += shellSplit(job.additionalArguments) + } + + if job.isRemote { + var sshParts = ["ssh", "-p", String(job.remotePort)] + let keyPath = normalizedPrivateKeyPath(job.sshKeyPath) + if !keyPath.isEmpty { + sshParts += ["-i", keyPath] + } + args += ["-e", sshParts.map(shellEscape).joined(separator: " ")] + } + + args.append(normalizeSource(job.sourcePath)) + args.append(job.destinationDisplay) + return args + } + + static func displayCommand(job: SyncJob, dryRun: Bool, executable: String) -> String { + ([executable] + build(job: job, dryRun: dryRun, executable: executable)) + .map(shellEscape) + .joined(separator: " ") + } + + static func normalizedPrivateKeyPath(_ path: String) -> String { + let trimmed = path.trimmingCharacters(in: .whitespacesAndNewlines) + guard trimmed.hasSuffix(".pub") else { return trimmed } + + let privatePath = String(trimmed.dropLast(4)) + if FileManager.default.fileExists(atPath: privatePath) { + return privatePath + } + return trimmed + } + + private static func isAppleRsync(_ executable: String) -> Bool { + executable == "/usr/bin/rsync" + } + + private static func normalizeSource(_ path: String) -> String { + path + } + + static func shellEscape(_ value: String) -> String { + if value.isEmpty { return "''" } + let allowed = CharacterSet.alphanumerics.union(CharacterSet(charactersIn: "-_./:@%+=,")) + if value.unicodeScalars.allSatisfy({ allowed.contains($0) }) { return value } + return "'" + value.replacingOccurrences(of: "'", with: "'\\''") + "'" + } + + static func shellSplit(_ string: String) -> [String] { + var result: [String] = [] + var current = "" + var quote: Character? + var escaping = false + + for ch in string { + if escaping { + current.append(ch) + escaping = false + continue + } + if ch == "\\" { + escaping = true + continue + } + if let q = quote { + if ch == q { quote = nil } else { current.append(ch) } + continue + } + if ch == "\"" || ch == "'" { + quote = ch + } else if ch.isWhitespace { + if !current.isEmpty { + result.append(current) + current = "" + } + } else { + current.append(ch) + } + } + if !current.isEmpty { result.append(current) } + return result + } +} diff --git a/RsyncManager/Services/RsyncLocator.swift b/RsyncManager/Services/RsyncLocator.swift new file mode 100644 index 0000000..5b9b8f4 --- /dev/null +++ b/RsyncManager/Services/RsyncLocator.swift @@ -0,0 +1,12 @@ +import Foundation + +enum RsyncLocator { + static func locate() -> String { + let candidates = [ + "/opt/homebrew/bin/rsync", + "/usr/local/bin/rsync", + "/usr/bin/rsync" + ] + return candidates.first(where: { FileManager.default.isExecutableFile(atPath: $0) }) ?? "/usr/bin/rsync" + } +} diff --git a/RsyncManager/Services/RsyncRunner.swift b/RsyncManager/Services/RsyncRunner.swift new file mode 100644 index 0000000..ba93d8d --- /dev/null +++ b/RsyncManager/Services/RsyncRunner.swift @@ -0,0 +1,139 @@ +import Foundation + +@MainActor +final class RsyncRunner: ObservableObject { + @Published private(set) var isRunning = false + @Published private(set) var currentJobID: UUID? + + private var process: Process? + + struct Result { + let exitCode: Int32 + let stdout: String + let stderr: String + let wasCancelled: Bool + } + + func run(job: SyncJob, dryRun: Bool) async throws -> Result { + guard !isRunning else { throw RunnerError.alreadyRunning } + guard !job.sourcePath.isEmpty, !job.destinationPath.isEmpty else { throw RunnerError.invalidPaths } + if job.isRemote && job.remoteHost.isEmpty { throw RunnerError.missingRemoteHost } + if job.isRemote && remoteDestinationLooksLikeHost(job) { throw RunnerError.invalidRemoteDestination } + if job.isRemote && job.sshKeyPath.trimmingCharacters(in: .whitespacesAndNewlines).hasSuffix(".pub") { + let privatePath = RsyncCommandBuilder.normalizedPrivateKeyPath(job.sshKeyPath) + if privatePath.hasSuffix(".pub") { throw RunnerError.publicSSHKeySelected } + } + + let executable = RsyncLocator.locate() + let arguments = RsyncCommandBuilder.build(job: job, dryRun: dryRun, executable: executable) + + isRunning = true + currentJobID = job.id + + defer { + isRunning = false + currentJobID = nil + process = nil + } + + let process = Process() + self.process = process + process.executableURL = URL(fileURLWithPath: executable) + process.arguments = arguments + + let stdoutPipe = Pipe() + let stderrPipe = Pipe() + process.standardOutput = stdoutPipe + process.standardError = stderrPipe + + // Keep rsync's potentially very chatty output off the MainActor. Updating a + // SwiftUI String for every rsync progress chunk makes the whole window jerk. + // These locked buffers collect every byte for history/export without causing + // any UI invalidation while the transfer is running. + let stdoutBuffer = LockedDataBuffer() + let stderrBuffer = LockedDataBuffer() + + stdoutPipe.fileHandleForReading.readabilityHandler = { handle in + let data = handle.availableData + guard !data.isEmpty else { return } + stdoutBuffer.append(data) + } + + stderrPipe.fileHandleForReading.readabilityHandler = { handle in + let data = handle.availableData + guard !data.isEmpty else { return } + stderrBuffer.append(data) + } + + return try await withCheckedThrowingContinuation { continuation in + process.terminationHandler = { proc in + stdoutPipe.fileHandleForReading.readabilityHandler = nil + stderrPipe.fileHandleForReading.readabilityHandler = nil + + // Consume anything left between the final readability callback and EOF. + let remainingOut = stdoutPipe.fileHandleForReading.readDataToEndOfFile() + let remainingErr = stderrPipe.fileHandleForReading.readDataToEndOfFile() + if !remainingOut.isEmpty { stdoutBuffer.append(remainingOut) } + if !remainingErr.isEmpty { stderrBuffer.append(remainingErr) } + + continuation.resume(returning: Result( + exitCode: proc.terminationStatus, + stdout: stdoutBuffer.stringValue, + stderr: stderrBuffer.stringValue, + wasCancelled: proc.terminationReason == .uncaughtSignal + )) + } + + do { + try process.run() + } catch { + stdoutPipe.fileHandleForReading.readabilityHandler = nil + stderrPipe.fileHandleForReading.readabilityHandler = nil + continuation.resume(throwing: error) + } + } + } + + private func remoteDestinationLooksLikeHost(_ job: SyncJob) -> Bool { + let destination = job.destinationPath.trimmingCharacters(in: .whitespacesAndNewlines) + let host = job.remoteHost.trimmingCharacters(in: .whitespacesAndNewlines) + return destination == host || destination == "\(job.remoteUser)@\(host)" + } + + func cancel() { + guard let process, process.isRunning else { return } + process.interrupt() + } + + enum RunnerError: LocalizedError { + case alreadyRunning, invalidPaths, missingRemoteHost, invalidRemoteDestination, publicSSHKeySelected + + var errorDescription: String? { + switch self { + case .alreadyRunning: return "Another rsync job is already running." + case .invalidPaths: return "Source and destination are required." + case .missingRemoteHost: return "Remote host is required for an SSH job." + case .invalidRemoteDestination: return "Remote destination must be a path on the remote machine, for example /home/mag/backup or ~/backup — not the host address." + case .publicSSHKeySelected: return "The SSH key must be the private key (for example ~/.ssh/id_rsa or ~/.ssh/id_ed25519), not the .pub file." + } + } + } +} + +private final class LockedDataBuffer: @unchecked Sendable { + private let lock = NSLock() + private var data = Data() + + func append(_ newData: Data) { + lock.lock() + data.append(newData) + lock.unlock() + } + + var stringValue: String { + lock.lock() + let snapshot = data + lock.unlock() + return String(decoding: snapshot, as: UTF8.self) + } +} diff --git a/RsyncManager/SettingsView.swift b/RsyncManager/SettingsView.swift new file mode 100644 index 0000000..b79f1b1 --- /dev/null +++ b/RsyncManager/SettingsView.swift @@ -0,0 +1,140 @@ +import SwiftUI +import ServiceManagement + +struct SettingsView: View { + @EnvironmentObject private var automation: BackgroundSyncManager + @AppStorage("defaultSSHUsername") private var defaultSSHUsername = NSUserName() + @AppStorage("defaultSSHKeyPath") private var defaultSSHKeyPath = "" + @AppStorage("defaultSSHPort") private var defaultSSHPort = 22 + @AppStorage("defaultRemoteHost") private var defaultRemoteHost = "" + @AppStorage("backgroundSchedulesEnabled") private var backgroundSchedulesEnabled = true + @AppStorage("fileWatchingEnabled") private var fileWatchingEnabled = true + @AppStorage("defaultWatchDebounceSeconds") private var defaultWatchDebounceSeconds = 3 + @State private var defaultPassword = "" + @State private var passwordSaved = false + @State private var launchAtLogin = false + @State private var launchError: String? + + var body: some View { + TabView { + Form { + Section("Default SSH Connection") { + TextField("Username", text: $defaultSSHUsername, prompt: Text(NSUserName())) + TextField("Default host", text: $defaultRemoteHost, prompt: Text("server.local")) + Stepper("SSH port: \(defaultSSHPort)", value: $defaultSSHPort, in: 1...65535) + + HStack { + TextField("Private SSH key", text: $defaultSSHKeyPath, prompt: Text("~/.ssh/id_ed25519")) + Button("Choose…") { + if let selected = FilePicker.chooseFile() { defaultSSHKeyPath = selected } + } + } + + SecureField("Default password", text: $defaultPassword) + HStack { + Text("Stored securely in the macOS Keychain, never in SwiftData or UserDefaults.") + .font(.caption) + .foregroundStyle(.secondary) + Spacer() + Button(passwordSaved ? "Saved" : "Save Password") { + KeychainStore.set(defaultPassword, for: "defaultSSHPassword") + passwordSaved = true + } + .disabled(defaultPassword.isEmpty) + } + } + + Section("New Jobs") { + Text("New SSH jobs use these values as defaults and can override them independently.") + .font(.caption) + .foregroundStyle(.secondary) + } + } + .formStyle(.grouped) + .tabItem { Label("Connections", systemImage: "network") } + + Form { + Section("Background Scheduling") { + Toggle("Run scheduled jobs", isOn: $backgroundSchedulesEnabled) + Toggle("Launch Rsync Manager at login", isOn: Binding( + get: { launchAtLogin }, + set: { setLaunchAtLogin($0) } + )) + HStack { + Label("Configured jobs", systemImage: "calendar.badge.clock") + Spacer() + Text("\(automation.scheduledJobCount)") + .foregroundStyle(.secondary) + } + Text("Scheduled jobs run without opening a modal and are written to History. Rsync Manager continues processing them while its window is hidden, minimised or closed, provided the application itself remains running.") + .font(.caption) + .foregroundStyle(.secondary) + } + + Section("File Watching") { + Toggle("Watch enabled jobs for changes", isOn: $fileWatchingEnabled) + Stepper("Default debounce: \(defaultWatchDebounceSeconds) seconds", value: $defaultWatchDebounceSeconds, in: 1...60) + HStack { + Label("Watched jobs", systemImage: "eye.fill") + Spacer() + Text("\(automation.watchedJobCount)") + .foregroundStyle(.secondary) + } + Text("Rsync Manager uses macOS FSEvents, so watched trees do not need to be repeatedly scanned. A short debounce combines rapid saves into a single sync.") + .font(.caption) + .foregroundStyle(.secondary) + } + } + .formStyle(.grouped) + .tabItem { Label("Automation", systemImage: "calendar.badge.clock") } + + Form { + Section("Rsync") { + LabeledContent("Detected executable", value: RsyncLocator.locate()) + Text("Rsync Manager prefers Homebrew rsync, then /usr/local/bin/rsync, and finally the version supplied with macOS.") + .font(.caption) + .foregroundStyle(.secondary) + } + + Section("Application") { + LabeledContent("Bundle identifier", value: Bundle.main.bundleIdentifier ?? "net.absdev.RsyncManager") + LabeledContent("Version", value: Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.0") + LabeledContent("Background service", value: automation.activity.title) + } + } + .formStyle(.grouped) + .tabItem { Label("General", systemImage: "gearshape") } + } + .frame(width: 650, height: 455) + .onAppear { + defaultPassword = KeychainStore.string(for: "defaultSSHPassword") + passwordSaved = !defaultPassword.isEmpty + launchAtLogin = SMAppService.mainApp.status == .enabled + } + .onChange(of: defaultPassword) { _, _ in passwordSaved = false } + .onChange(of: backgroundSchedulesEnabled) { _, _ in automation.refreshConfiguration() } + .onChange(of: fileWatchingEnabled) { _, _ in automation.refreshConfiguration() } + .alert("Launch at Login", isPresented: Binding( + get: { launchError != nil }, + set: { if !$0 { launchError = nil } } + )) { + Button("OK", role: .cancel) { launchError = nil } + } message: { + Text(launchError ?? "Unable to change the login item setting.") + } + } + + private func setLaunchAtLogin(_ enabled: Bool) { + do { + if enabled { + try SMAppService.mainApp.register() + } else { + try SMAppService.mainApp.unregister() + } + launchAtLogin = SMAppService.mainApp.status == .enabled + } catch { + launchAtLogin = SMAppService.mainApp.status == .enabled + launchError = error.localizedDescription + } + } +} diff --git a/RsyncManager/Utilities/FilePicker.swift b/RsyncManager/Utilities/FilePicker.swift new file mode 100644 index 0000000..4d19593 --- /dev/null +++ b/RsyncManager/Utilities/FilePicker.swift @@ -0,0 +1,21 @@ +import AppKit + +@MainActor +enum FilePicker { + static func chooseDirectory() -> String? { + let panel = NSOpenPanel() + panel.canChooseDirectories = true + panel.canChooseFiles = false + panel.allowsMultipleSelection = false + panel.canCreateDirectories = true + return panel.runModal() == .OK ? panel.url?.path : nil + } + + static func chooseFile() -> String? { + let panel = NSOpenPanel() + panel.canChooseDirectories = false + panel.canChooseFiles = true + panel.allowsMultipleSelection = false + return panel.runModal() == .OK ? panel.url?.path : nil + } +} diff --git a/RsyncManager/Utilities/KeychainStore.swift b/RsyncManager/Utilities/KeychainStore.swift new file mode 100644 index 0000000..e6275b1 --- /dev/null +++ b/RsyncManager/Utilities/KeychainStore.swift @@ -0,0 +1,41 @@ +import Foundation +import Security + +enum KeychainStore { + private static let service = "net.absdev.RsyncManager" + + static func string(for account: String) -> String { + let query: [String: Any] = [ + kSecClass as String: kSecClassGenericPassword, + kSecAttrService as String: service, + kSecAttrAccount as String: account, + kSecReturnData as String: true, + kSecMatchLimit as String: kSecMatchLimitOne + ] + var item: CFTypeRef? + guard SecItemCopyMatching(query as CFDictionary, &item) == errSecSuccess, + let data = item as? Data, + let value = String(data: data, encoding: .utf8) else { return "" } + return value + } + + static func set(_ value: String, for account: String) { + let base: [String: Any] = [ + kSecClass as String: kSecClassGenericPassword, + kSecAttrService as String: service, + kSecAttrAccount as String: account + ] + if value.isEmpty { + SecItemDelete(base as CFDictionary) + return + } + let data = Data(value.utf8) + let update: [String: Any] = [kSecValueData as String: data] + if SecItemUpdate(base as CFDictionary, update as CFDictionary) == errSecItemNotFound { + var add = base + add[kSecValueData as String] = data + add[kSecAttrAccessible as String] = kSecAttrAccessibleAfterFirstUnlock + SecItemAdd(add as CFDictionary, nil) + } + } +} diff --git a/RsyncManager/Views/Components/FlowLayout.swift b/RsyncManager/Views/Components/FlowLayout.swift new file mode 100644 index 0000000..cc6d259 --- /dev/null +++ b/RsyncManager/Views/Components/FlowLayout.swift @@ -0,0 +1,36 @@ +import SwiftUI + +struct FlowLayout: Layout { + var spacing: CGFloat = 8 + + func sizeThatFits(proposal: ProposedViewSize, subviews: Subviews, cache: inout ()) -> CGSize { + let width = proposal.width ?? .infinity + var x: CGFloat = 0, y: CGFloat = 0, rowHeight: CGFloat = 0 + for view in subviews { + let size = view.sizeThatFits(.unspecified) + if x + size.width > width, x > 0 { + x = 0 + y += rowHeight + spacing + rowHeight = 0 + } + x += size.width + spacing + rowHeight = max(rowHeight, size.height) + } + return CGSize(width: width.isFinite ? width : x, height: y + rowHeight) + } + + func placeSubviews(in bounds: CGRect, proposal: ProposedViewSize, subviews: Subviews, cache: inout ()) { + var x = bounds.minX, y = bounds.minY, rowHeight: CGFloat = 0 + for view in subviews { + let size = view.sizeThatFits(.unspecified) + if x + size.width > bounds.maxX, x > bounds.minX { + x = bounds.minX + y += rowHeight + spacing + rowHeight = 0 + } + view.place(at: CGPoint(x: x, y: y), proposal: ProposedViewSize(size)) + x += size.width + spacing + rowHeight = max(rowHeight, size.height) + } + } +} diff --git a/RsyncManager/Views/Components/PathField.swift b/RsyncManager/Views/Components/PathField.swift new file mode 100644 index 0000000..f39100b --- /dev/null +++ b/RsyncManager/Views/Components/PathField.swift @@ -0,0 +1,22 @@ +import SwiftUI + +struct PathField: View { + let title: String + @Binding var path: String + var canBrowse: Bool = true + + var body: some View { + VStack(alignment: .leading, spacing: 6) { + Text(title).font(.headline) + HStack { + TextField(title, text: $path) + .textFieldStyle(.roundedBorder) + if canBrowse { + Button("Choose…") { + if let selected = FilePicker.chooseDirectory() { path = selected } + } + } + } + } + } +} diff --git a/RsyncManager/Views/Components/SplashView.swift b/RsyncManager/Views/Components/SplashView.swift new file mode 100644 index 0000000..87c9b09 --- /dev/null +++ b/RsyncManager/Views/Components/SplashView.swift @@ -0,0 +1,49 @@ +import SwiftUI + +struct SplashView: View { + @State private var animate = false + + var body: some View { + ZStack { + LinearGradient( + colors: [Color.accentColor.opacity(0.95), Color.accentColor.opacity(0.62), Color(nsColor: .windowBackgroundColor)], + startPoint: .topLeading, + endPoint: .bottomTrailing + ) + .ignoresSafeArea() + + VStack(spacing: 22) { + ZStack { + RoundedRectangle(cornerRadius: 30, style: .continuous) + .fill(.ultraThinMaterial) + .frame(width: 126, height: 126) + .shadow(color: .black.opacity(0.18), radius: 28, y: 14) + + Image(systemName: "arrow.triangle.2.circlepath") + .font(.system(size: 58, weight: .semibold)) + .symbolRenderingMode(.hierarchical) + .foregroundStyle(.white) + .rotationEffect(.degrees(animate ? 360 : 0)) + } + + VStack(spacing: 6) { + Text("Rsync Manager") + .font(.system(size: 32, weight: .bold, design: .rounded)) + Text("Fast, dependable file synchronisation for macOS") + .font(.headline) + .foregroundStyle(.secondary) + } + + ProgressView() + .controlSize(.small) + .padding(.top, 2) + } + .padding(48) + } + .onAppear { + withAnimation(.linear(duration: 1.25).repeatForever(autoreverses: false)) { + animate = true + } + } + } +} diff --git a/RsyncManager/Views/Components/StatusBadge.swift b/RsyncManager/Views/Components/StatusBadge.swift new file mode 100644 index 0000000..bd5171e --- /dev/null +++ b/RsyncManager/Views/Components/StatusBadge.swift @@ -0,0 +1,25 @@ +import SwiftUI + +struct StatusBadge: View { + let run: SyncRun + + var body: some View { + Label(text, systemImage: icon) + .font(.caption.weight(.semibold)) + .padding(.horizontal, 8) + .padding(.vertical, 4) + .background(.quaternary, in: Capsule()) + } + + private var text: String { + if run.isRunning { return "Running" } + if run.wasCancelled { return "Cancelled" } + return run.succeeded ? "Success" : "Failed" + } + + private var icon: String { + if run.isRunning { return "arrow.triangle.2.circlepath" } + if run.wasCancelled { return "stop.circle" } + return run.succeeded ? "checkmark.circle.fill" : "xmark.circle.fill" + } +} diff --git a/RsyncManager/Views/HelpView.swift b/RsyncManager/Views/HelpView.swift new file mode 100644 index 0000000..f53f0e1 --- /dev/null +++ b/RsyncManager/Views/HelpView.swift @@ -0,0 +1,220 @@ +import SwiftUI + +struct HelpView: View { + @Environment(\.dismiss) private var dismiss + @State private var blocks: [HelpBlock] = [.paragraph("Loading help…")] + + var body: some View { + VStack(spacing: 0) { + HStack(spacing: 12) { + Image(systemName: "questionmark.circle.fill") + .font(.title2) + .foregroundStyle(Color.accentColor) + + VStack(alignment: .leading, spacing: 1) { + Text("Rsync Manager Help") + .font(.headline) + Text("Instructions, examples and troubleshooting") + .font(.caption) + .foregroundStyle(.secondary) + } + + Spacer() + + Button("Done") { dismiss() } + .keyboardShortcut(.cancelAction) + } + .padding(.horizontal, 18) + .padding(.vertical, 12) + .background(.bar) + + Divider() + + ScrollView { + LazyVStack(alignment: .leading, spacing: 14) { + ForEach(Array(blocks.enumerated()), id: \.offset) { _, block in + blockView(block) + } + } + .textSelection(.enabled) + .frame(maxWidth: 900, alignment: .leading) + .padding(.horizontal, 34) + .padding(.vertical, 28) + .frame(maxWidth: .infinity, alignment: .center) + } + } + .frame(minWidth: 780, idealWidth: 940, minHeight: 640, idealHeight: 780) + .task { loadHelp() } + } + + @ViewBuilder + private func blockView(_ block: HelpBlock) -> some View { + switch block { + case .heading(let level, let text): + Text(text) + .font(headingFont(level)) + .padding(.top, level == 1 ? 4 : 10) + .frame(maxWidth: .infinity, alignment: .leading) + + case .paragraph(let text): + Text(markdown(text)) + .font(.body) + .lineSpacing(4) + .frame(maxWidth: .infinity, alignment: .leading) + + case .bullet(let text): + HStack(alignment: .firstTextBaseline, spacing: 10) { + Text("•") + .font(.body.bold()) + Text(markdown(text)) + .font(.body) + .lineSpacing(3) + } + .padding(.leading, 6) + + case .numbered(let number, let text): + HStack(alignment: .firstTextBaseline, spacing: 10) { + Text("\(number).") + .font(.body.weight(.semibold)) + .frame(width: 28, alignment: .trailing) + Text(markdown(text)) + .font(.body) + .lineSpacing(3) + } + + case .code(let text): + ScrollView(.horizontal) { + Text(text) + .font(.system(.body, design: .monospaced)) + .frame(maxWidth: .infinity, alignment: .leading) + .padding(14) + } + .background(Color(nsColor: .textBackgroundColor).opacity(0.55), in: RoundedRectangle(cornerRadius: 10, style: .continuous)) + .overlay { + RoundedRectangle(cornerRadius: 10, style: .continuous) + .stroke(.quaternary, lineWidth: 1) + } + } + } + + private func headingFont(_ level: Int) -> Font { + switch level { + case 1: return .largeTitle.bold() + case 2: return .title2.bold() + case 3: return .title3.weight(.semibold) + default: return .headline + } + } + + private func markdown(_ text: String) -> AttributedString { + (try? AttributedString( + markdown: text, + options: AttributedString.MarkdownParsingOptions(interpretedSyntax: .inlineOnlyPreservingWhitespace) + )) ?? AttributedString(text) + } + + private func loadHelp() { + guard let url = Bundle.main.url(forResource: "RsyncManagerHelp", withExtension: "md"), + let text = try? String(contentsOf: url, encoding: .utf8) else { + blocks = [.heading(1, "Help unavailable"), .paragraph("The bundled help document could not be loaded.")] + return + } + blocks = HelpMarkdownParser.parse(text) + } +} + +private enum HelpBlock { + case heading(Int, String) + case paragraph(String) + case bullet(String) + case numbered(Int, String) + case code(String) +} + +private enum HelpMarkdownParser { + static func parse(_ source: String) -> [HelpBlock] { + var result: [HelpBlock] = [] + var paragraph: [String] = [] + var codeLines: [String] = [] + var insideCode = false + + func flushParagraph() { + guard !paragraph.isEmpty else { return } + result.append(.paragraph(paragraph.joined(separator: " "))) + paragraph.removeAll(keepingCapacity: true) + } + + func flushCode() { + guard !codeLines.isEmpty else { return } + result.append(.code(codeLines.joined(separator: "\n"))) + codeLines.removeAll(keepingCapacity: true) + } + + for rawLine in source.components(separatedBy: .newlines) { + let line = rawLine.trimmingCharacters(in: .whitespaces) + + if line.hasPrefix("```") { + if insideCode { + flushCode() + insideCode = false + } else { + flushParagraph() + insideCode = true + } + continue + } + + if insideCode { + codeLines.append(rawLine) + continue + } + + if line.isEmpty { + flushParagraph() + continue + } + + if let heading = heading(from: line) { + flushParagraph() + result.append(.heading(heading.level, heading.text)) + continue + } + + if line.hasPrefix("- ") || line.hasPrefix("* ") { + flushParagraph() + result.append(.bullet(String(line.dropFirst(2)))) + continue + } + + if let numbered = numberedItem(from: line) { + flushParagraph() + result.append(.numbered(numbered.number, numbered.text)) + continue + } + + paragraph.append(line) + } + + flushParagraph() + flushCode() + return result + } + + private static func heading(from line: String) -> (level: Int, text: String)? { + let hashes = line.prefix { $0 == "#" }.count + guard hashes > 0, hashes <= 6 else { return nil } + let remainder = line.dropFirst(hashes) + guard remainder.first == " " else { return nil } + return (hashes, String(remainder.dropFirst())) + } + + private static func numberedItem(from line: String) -> (number: Int, text: String)? { + guard let dot = line.firstIndex(of: ".") else { return nil } + let numberText = line[.., + buttonTitle: String, + action: @escaping () -> Void + ) -> some View { + HStack(spacing: 12) { + ZStack { + RoundedRectangle(cornerRadius: 8, style: .continuous) + .fill(colour.opacity(0.12)) + Image(systemName: icon) + .foregroundStyle(colour) + } + .frame(width: 34, height: 34) + + VStack(alignment: .leading, spacing: 2) { + Text(title).font(.body.weight(.semibold)) + Text(subtitle) + .font(.caption) + .foregroundStyle(.secondary) + .lineLimit(1) + .truncationMode(.middle) + } + + Spacer(minLength: 12) + + Toggle("", isOn: isOn) + .labelsHidden() + .toggleStyle(.switch) + + Button(buttonTitle, action: action) + .buttonStyle(.bordered) + .controlSize(.small) + .frame(width: 88) + } + .padding(.vertical, 10) + } + + private var watchSubtitle: String { + guard job.watchEnabled else { return "Off" } + let path = job.effectiveWatchPath + return "Watching \(path) · \(job.watchDebounceSeconds)s debounce" + } + + private var optionsSection: some View { + GroupBox("Options") { + FlowLayout(spacing: 8) { + option("Archive", job.archive) + option("Compress", job.compress) + option("Delete", job.deleteExtraneous) + option("Permissions", job.preservePermissions) + option("Extended Attributes", job.preserveExtendedAttributes) + option("Progress", job.showProgress) + } + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.vertical, 3) + } + } + + private var scheduleBinding: Binding { + Binding( + get: { job.scheduleEnabled }, + set: { enabled in + job.scheduleEnabled = enabled + if enabled { + if job.scheduleKind == .manual { job.scheduleKind = .daily } + if job.scheduleStartAt < Date() { job.scheduleStartAt = Date().addingTimeInterval(3600) } + job.nextRunAt = job.calculateNextRun(after: Date().addingTimeInterval(-1)) + } else { + job.nextRunAt = nil + } + persistAutomationChange() + } + ) + } + + private var watchBinding: Binding { + Binding( + get: { job.watchEnabled }, + set: { enabled in + job.watchEnabled = enabled + if enabled && job.watchPath.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { + job.watchPath = job.sourcePath + } + persistAutomationChange() + } + ) + } + + private func openEditor(_ section: JobEditorSection?) { + editorSection = section + showingEditor = true + } + + private func persistAutomationChange() { + job.updatedAt = Date() + try? modelContext.save() + NotificationCenter.default.post(name: .syncJobsChanged, object: nil) + } + + @ViewBuilder + private func option(_ name: String, _ enabled: Bool) -> some View { + if enabled { + Label(name, systemImage: "checkmark") + .font(.caption.weight(.medium)) + .padding(.horizontal, 9) + .padding(.vertical, 5) + .background(.quaternary, in: Capsule()) + } + } + + private enum RunPresentation { + case manual + case scheduled + + var showsModal: Bool { + switch self { + case .manual: return true + case .scheduled: return false + } + } + } + + private func launch(dryRun: Bool, presentation: RunPresentation) { + let executable = RsyncLocator.locate() + let command = RsyncCommandBuilder.displayCommand(job: job, dryRun: dryRun, executable: executable) + let run = SyncRun(job: job, command: command, wasDryRun: dryRun, trigger: .manual) + modelContext.insert(run) + try? modelContext.save() + + if presentation.showsModal { + presentedRun = run + showingRunSheet = true + } + + Task { + do { + let result = try await runner.run(job: job, dryRun: dryRun) + run.output = result.stdout + run.errorOutput = result.stderr + run.exitCode = Int(result.exitCode) + run.wasCancelled = result.wasCancelled + run.finishedAt = Date() + job.lastRunAt = run.finishedAt + job.lastExitCode = Int(result.exitCode) + job.updatedAt = Date() + try? modelContext.save() + } catch { + run.errorOutput = error.localizedDescription + run.exitCode = -1 + run.finishedAt = Date() + job.lastRunAt = run.finishedAt + job.lastExitCode = -1 + try? modelContext.save() + + if !presentation.showsModal { + errorMessage = error.localizedDescription + } + } + } + } +} +private struct RunProgressSheet: View { + @Environment(\.dismiss) private var dismiss + @EnvironmentObject private var runner: RsyncRunner + @Bindable var run: SyncRun + let job: SyncJob + @State private var exportError: String? + @State private var showTechnicalDetails = false + @State private var now = Date() + + private var isRunning: Bool { run.finishedAt == nil } + + var body: some View { + VStack(spacing: 0) { + header + Divider() + Group { + if isRunning { runningContent } else { completedContent } + } + } + .frame(width: 680) + .frame(minHeight: 520) + .background(Color(nsColor: .windowBackgroundColor)) + .interactiveDismissDisabled(isRunning) + .task { + while isRunning { + try? await Task.sleep(for: .seconds(1)) + now = Date() + } + } + .alert("Could Not Export Log", isPresented: Binding( + get: { exportError != nil }, + set: { if !$0 { exportError = nil } } + )) { + Button("OK", role: .cancel) { exportError = nil } + } message: { + Text(exportError ?? "Unknown error") + } + } + + private var header: some View { + HStack(spacing: 14) { + ZStack { + RoundedRectangle(cornerRadius: 12, style: .continuous) + .fill(Color.accentColor.opacity(0.12)) + .frame(width: 44, height: 44) + Image(systemName: run.wasDryRun ? "doc.text.magnifyingglass" : "arrow.triangle.2.circlepath") + .font(.system(size: 20, weight: .semibold)) + .foregroundStyle(Color.accentColor) + } + VStack(alignment: .leading, spacing: 3) { + Text(run.wasDryRun ? "Dry Run" : "Synchronisation") + .font(.title2.bold()) + Text(run.jobName) + .foregroundStyle(.secondary) + } + Spacer() + if !isRunning { + Button("Done") { dismiss() } + .buttonStyle(.borderedProminent) + .keyboardShortcut(.defaultAction) + } + } + .padding(22) + .background(.bar) + } + + private var runningContent: some View { + VStack(spacing: 26) { + Spacer(minLength: 26) + + AnimatedSyncIndicator(size: 124, lineWidth: 9) + .padding(.bottom, 2) + + VStack(spacing: 8) { + Text(run.wasDryRun ? "Checking what would change…" : "Synchronising files…") + .font(.title3.bold()) + Text(run.wasDryRun + ? "Rsync is comparing the source and destination. No files will be changed." + : "Rsync is scanning and transferring changed files. Full output is being captured without slowing the interface.") + .foregroundStyle(.secondary) + .multilineTextAlignment(.center) + .frame(maxWidth: 500) + } + + connectionCard + + HStack(spacing: 22) { + Label("Elapsed \(elapsedText)", systemImage: "timer") + Label("Log captured", systemImage: "doc.text") + } + .font(.caption.weight(.medium)) + .foregroundStyle(.secondary) + + Spacer() + + HStack { + Text("You can continue using the app while this transfer runs.") + .font(.caption) + .foregroundStyle(.secondary) + Spacer() + if runner.currentJobID == run.jobID { + Button("Cancel", role: .destructive) { runner.cancel() } + .buttonStyle(.bordered) + .controlSize(.large) + } + } + .padding(22) + .background(.bar) + } + } + + private var connectionCard: some View { + HStack(spacing: 16) { + VStack(alignment: .leading, spacing: 5) { + Label("Source", systemImage: "folder.fill") + .font(.caption.weight(.semibold)) + .foregroundStyle(.secondary) + Text(job.sourcePath) + .font(.system(.body, design: .monospaced)) + .lineLimit(2) + .truncationMode(.middle) + } + .frame(maxWidth: .infinity, alignment: .leading) + + Image(systemName: "arrow.right") + .font(.title3.weight(.semibold)) + .foregroundStyle(Color.accentColor) + + VStack(alignment: .leading, spacing: 5) { + Label("Destination", systemImage: job.isRemote ? "server.rack" : "externaldrive.fill") + .font(.caption.weight(.semibold)) + .foregroundStyle(.secondary) + Text(job.destinationDisplay) + .font(.system(.body, design: .monospaced)) + .lineLimit(2) + .truncationMode(.middle) + } + .frame(maxWidth: .infinity, alignment: .leading) + } + .padding(16) + .background(.quaternary.opacity(0.45), in: RoundedRectangle(cornerRadius: 14, style: .continuous)) + .padding(.horizontal, 28) + } + + private var completedContent: some View { + ScrollView { + VStack(alignment: .leading, spacing: 20) { + completionHero + + if run.summary.hasStatistics { + HStack(spacing: 12) { + metricCard(title: run.wasDryRun ? "Would transfer" : "Transferred", value: run.summary.numberOfFilesTransferred ?? "—", icon: "doc.on.doc.fill") + metricCard(title: "Data", value: run.summary.totalTransferredFileSize ?? "—", icon: "arrow.down.circle.fill") + metricCard(title: "Files checked", value: run.summary.numberOfFiles ?? "—", icon: "checklist") + } + + GroupBox("Transfer Summary") { + Grid(alignment: .leading, horizontalSpacing: 34, verticalSpacing: 10) { + summaryRow("Files checked", run.summary.numberOfFiles) + summaryRow(run.wasDryRun ? "Files that would transfer" : "Files transferred", run.summary.numberOfFilesTransferred) + summaryRow("Total source size", run.summary.totalFileSize) + summaryRow(run.wasDryRun ? "Data that would transfer" : "Data transferred", run.summary.totalTransferredFileSize) + summaryRow("Unmatched data", run.summary.unmatchedData) + summaryRow("Matched data", run.summary.matchedData) + summaryRow("File list size", run.summary.fileListSize) + summaryRow("List generation", run.summary.fileListGenerationTime) + summaryRow("List transfer", run.summary.fileListTransferTime) + summaryRow("Sent", run.summary.totalSent) + summaryRow("Received", run.summary.totalReceived) + } + .padding(.vertical, 4) + .frame(maxWidth: .infinity, alignment: .leading) + } + + if run.summary.transferRate != nil || run.summary.totalSizeAndSpeedup != nil { + VStack(alignment: .leading, spacing: 6) { + if let transferRate = run.summary.transferRate { Text(transferRate) } + if let speedup = run.summary.totalSizeAndSpeedup { Text(speedup) } + } + .font(.system(.caption, design: .monospaced)) + .foregroundStyle(.secondary) + .textSelection(.enabled) + } + } + + if !run.succeeded { + DisclosureGroup("Technical Details", isExpanded: $showTechnicalDetails) { + Text(run.errorOutput.isEmpty ? "Rsync exited without additional error output." : run.errorOutput) + .font(.system(.caption, design: .monospaced)) + .textSelection(.enabled) + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.top, 8) + } + .padding(14) + .background(Color.orange.opacity(0.08), in: RoundedRectangle(cornerRadius: 12)) + } + + Divider() + + HStack { + Button { exportLog() } label: { + Label("Export Log…", systemImage: "square.and.arrow.up") + } + .controlSize(.large) + + Spacer() + + if let duration = run.duration { + Label(Duration.seconds(duration).formatted(.units(allowed: [.minutes, .seconds], width: .abbreviated)), systemImage: "timer") + .foregroundStyle(.secondary) + } + + Button("Done") { dismiss() } + .buttonStyle(.borderedProminent) + .controlSize(.large) + } + } + .padding(24) + } + } + + private var completionHero: some View { + HStack(spacing: 16) { + Image(systemName: completionIcon) + .font(.system(size: 42, weight: .semibold)) + .foregroundStyle(completionColour) + VStack(alignment: .leading, spacing: 4) { + Text(completionTitle) + .font(.title2.bold()) + Text(completionMessage) + .foregroundStyle(.secondary) + if let exitCode = run.exitCode, !run.succeeded { + Text("Rsync exit code \(exitCode)") + .font(.caption.weight(.semibold)) + .foregroundStyle(.secondary) + } + } + } + .padding(18) + .frame(maxWidth: .infinity, alignment: .leading) + .background(completionColour.opacity(0.09), in: RoundedRectangle(cornerRadius: 16, style: .continuous)) + } + + private func metricCard(title: String, value: String, icon: String) -> some View { + VStack(alignment: .leading, spacing: 8) { + Image(systemName: icon) + .foregroundStyle(Color.accentColor) + Text(value) + .font(.title3.bold()) + .lineLimit(1) + Text(title) + .font(.caption) + .foregroundStyle(.secondary) + } + .padding(14) + .frame(maxWidth: .infinity, alignment: .leading) + .background(.quaternary.opacity(0.45), in: RoundedRectangle(cornerRadius: 13, style: .continuous)) + } + + private var completionIcon: String { + if run.wasCancelled { return "xmark.circle.fill" } + return run.succeeded ? "checkmark.circle.fill" : "exclamationmark.triangle.fill" + } + + private var completionColour: Color { + if run.wasCancelled { return .secondary } + return run.succeeded ? .green : .orange + } + + private var completionTitle: String { + if run.wasCancelled { return "Synchronisation Cancelled" } + if run.succeeded { return run.wasDryRun ? "Dry Run Complete" : "Synchronisation Complete" } + return "Synchronisation Failed" + } + + private var completionMessage: String { + if run.wasCancelled { return "The transfer was stopped before it completed." } + if run.succeeded && run.wasDryRun { return "No files were changed. The summary below shows what a real run would transfer." } + if run.succeeded { return "Your files were synchronised successfully." } + if !run.errorOutput.isEmpty { + return run.errorOutput.components(separatedBy: .newlines).first(where: { !$0.trimmingCharacters(in: .whitespaces).isEmpty }) ?? "Rsync reported an error." + } + return "Rsync could not complete this synchronisation." + } + + private var elapsedText: String { + let interval = max(0, now.timeIntervalSince(run.startedAt)) + return Duration.seconds(interval).formatted(.units(allowed: [.minutes, .seconds], width: .abbreviated)) + } + + @ViewBuilder + private func summaryRow(_ title: String, _ value: String?) -> some View { + if let value { + GridRow { + Text(title).foregroundStyle(.secondary) + Text(value).fontWeight(.medium).textSelection(.enabled) + } + } + } + + private func exportLog() { + let panel = NSSavePanel() + panel.title = "Export Rsync Log" + panel.prompt = "Export" + panel.canCreateDirectories = true + panel.nameFieldStringValue = defaultLogFilename + guard panel.runModal() == .OK, let url = panel.url else { return } + do { try run.exportText.write(to: url, atomically: true, encoding: .utf8) } + catch { exportError = error.localizedDescription } + } + + private var defaultLogFilename: String { + let safeName = run.jobName.replacingOccurrences(of: "/", with: "-").replacingOccurrences(of: ":", with: "-") + let formatter = DateFormatter() + formatter.dateFormat = "yyyy-MM-dd_HH-mm-ss" + return "\(safeName)-\(formatter.string(from: run.startedAt)).log" + } +} diff --git a/RsyncManager/Views/Jobs/JobEditorView.swift b/RsyncManager/Views/Jobs/JobEditorView.swift new file mode 100644 index 0000000..7e7b541 --- /dev/null +++ b/RsyncManager/Views/Jobs/JobEditorView.swift @@ -0,0 +1,271 @@ +import SwiftUI +import SwiftData + +enum JobEditorSection: Hashable { + case schedule + case fileWatch +} + +struct JobEditorView: View { + @Environment(\.dismiss) private var dismiss + @Environment(\.modelContext) private var modelContext + @AppStorage("defaultSSHUsername") private var defaultSSHUsername = NSUserName() + + let existingJob: SyncJob? + let initialSection: JobEditorSection? + + @State private var name: String + @State private var sourcePath: String + @State private var destinationPath: String + @State private var isRemote: Bool + @State private var remoteHost: String + @State private var remoteUser: String + @State private var remotePort: Int + @State private var sshKeyPath: String + @State private var archive: Bool + @State private var compress: Bool + @State private var deleteExtraneous: Bool + @State private var preservePermissions: Bool + @State private var preserveExtendedAttributes: Bool + @State private var showProgress: Bool + @State private var exclusionsText: String + @State private var additionalArguments: String + @State private var isEnabled: Bool + @State private var scheduleEnabled: Bool + @State private var scheduleKind: SyncScheduleKind + @State private var scheduleStartAt: Date + @State private var scheduleIntervalMinutes: Int + @State private var watchEnabled: Bool + @State private var watchPath: String + @State private var watchDebounceSeconds: Int + + init(job: SyncJob? = nil, initialSection: JobEditorSection? = nil) { + self.existingJob = job + self.initialSection = initialSection + _name = State(initialValue: job?.name ?? "New Sync Job") + _sourcePath = State(initialValue: job?.sourcePath ?? "") + _destinationPath = State(initialValue: job?.destinationPath ?? "") + _isRemote = State(initialValue: job?.isRemote ?? false) + _remoteHost = State(initialValue: job?.remoteHost ?? UserDefaults.standard.string(forKey: "defaultRemoteHost") ?? "") + _remoteUser = State(initialValue: job?.remoteUser ?? UserDefaults.standard.string(forKey: "defaultSSHUsername") ?? NSUserName()) + let savedPort = UserDefaults.standard.integer(forKey: "defaultSSHPort") + _remotePort = State(initialValue: job?.remotePort ?? (savedPort == 0 ? 22 : savedPort)) + _sshKeyPath = State(initialValue: job?.sshKeyPath ?? UserDefaults.standard.string(forKey: "defaultSSHKeyPath") ?? "") + _archive = State(initialValue: job?.archive ?? true) + _compress = State(initialValue: job?.compress ?? false) + _deleteExtraneous = State(initialValue: job?.deleteExtraneous ?? false) + _preservePermissions = State(initialValue: job?.preservePermissions ?? true) + _preserveExtendedAttributes = State(initialValue: job?.preserveExtendedAttributes ?? true) + _showProgress = State(initialValue: job?.showProgress ?? true) + _exclusionsText = State(initialValue: job?.exclusionsText ?? "") + _additionalArguments = State(initialValue: job?.additionalArguments ?? "") + _isEnabled = State(initialValue: job?.isEnabled ?? true) + _scheduleEnabled = State(initialValue: job?.scheduleEnabled ?? false) + _scheduleKind = State(initialValue: job?.scheduleKind ?? .daily) + _scheduleStartAt = State(initialValue: job?.scheduleStartAt ?? Date().addingTimeInterval(3600)) + _scheduleIntervalMinutes = State(initialValue: job?.scheduleIntervalMinutes ?? 30) + _watchEnabled = State(initialValue: job?.watchEnabled ?? false) + _watchPath = State(initialValue: job?.watchPath ?? "") + let defaultDebounce = UserDefaults.standard.integer(forKey: "defaultWatchDebounceSeconds") + _watchDebounceSeconds = State(initialValue: job?.watchDebounceSeconds ?? (defaultDebounce == 0 ? 3 : defaultDebounce)) + } + + var body: some View { + NavigationStack { + ScrollViewReader { proxy in + Form { + Section("Job") { + TextField("Name", text: $name) + Toggle("Enabled", isOn: $isEnabled) + } + + Section("Locations") { + PathField(title: "Source", path: $sourcePath) + Picker("Destination type", selection: $isRemote) { + Text("Local / Mounted Volume").tag(false) + Text("SSH / Remote Mac or Server").tag(true) + } + .pickerStyle(.segmented) + + if isRemote { + TextField("Remote path", text: $destinationPath, prompt: Text("/home/mag/backup or ~/backup")) + .textFieldStyle(.roundedBorder) + } else { + PathField(title: "Destination", path: $destinationPath) + } + } + + if isRemote { + Section("SSH") { + TextField("Host", text: $remoteHost, prompt: Text("pegasus.local")) + TextField("User", text: $remoteUser, prompt: Text(defaultSSHUsername.isEmpty ? NSUserName() : defaultSSHUsername)) + Stepper("Port: \(remotePort)", value: $remotePort, in: 1...65535) + HStack { + TextField("Private SSH key", text: $sshKeyPath, prompt: Text("~/.ssh/id_ed25519 or ~/.ssh/id_rsa")) + Button("Choose…") { + if let selected = FilePicker.chooseFile() { sshKeyPath = selected } + } + } + if sshKeyPath.hasSuffix(".pub") { + Label("Select the private key, not the .pub public key.", systemImage: "exclamationmark.triangle.fill") + .font(.caption) + .foregroundStyle(.orange) + } + } + } + + Section { + Toggle("Run this job on a schedule", isOn: $scheduleEnabled) + if scheduleEnabled { + Picker("Frequency", selection: $scheduleKind) { + ForEach(SyncScheduleKind.allCases.filter { $0 != .manual }) { kind in + Label(kind.title, systemImage: kind.systemImage).tag(kind) + } + } + + DatePicker( + scheduleKind == .once ? "Run date and time" : "Starting", + selection: $scheduleStartAt, + displayedComponents: scheduleKind == .once ? [.date, .hourAndMinute] : [.date, .hourAndMinute] + ) + + if scheduleKind == .custom { + Stepper("Every \(scheduleIntervalMinutes) minutes", value: $scheduleIntervalMinutes, in: 1...525600) + } + + Label(schedulePreview, systemImage: "calendar.badge.clock") + .font(.caption) + .foregroundStyle(.secondary) + } + } header: { + Text("Schedule") + } footer: { + Text("Scheduled jobs run silently and are recorded in History. They continue while Rsync Manager is running, even when its window is in the background.") + } + .id(JobEditorSection.schedule) + + Section { + Toggle("Watch for file changes", isOn: $watchEnabled) + if watchEnabled { + HStack { + TextField("Watch path", text: $watchPath, prompt: Text(sourcePath.isEmpty ? "Uses the job source" : sourcePath)) + Menu("Choose…") { + Button("Choose Folder…") { + if let selected = FilePicker.chooseDirectory() { watchPath = selected } + } + Button("Choose File…") { + if let selected = FilePicker.chooseFile() { watchPath = selected } + } + } + } + Stepper("Wait \(watchDebounceSeconds) seconds after changes", value: $watchDebounceSeconds, in: 1...60) + Label("Changes are monitored with macOS FSEvents. Bursts of edits are combined into one sync.", systemImage: "waveform.path.ecg") + .font(.caption) + .foregroundStyle(.secondary) + } + } header: { + Text("File Watching") + } footer: { + Text("Leave the watch path empty to watch the source. If the source is a single file, only that file is synced; if it is a folder, the configured folder job runs when anything inside changes.") + } + .id(JobEditorSection.fileWatch) + + Section("Rsync Options") { + Toggle("Archive mode (-a)", isOn: $archive) + Toggle("Compress during transfer (-z)", isOn: $compress) + Toggle("Delete files missing from source (--delete)", isOn: $deleteExtraneous) + Toggle("Preserve permissions", isOn: $preservePermissions) + Toggle("Preserve extended attributes", isOn: $preserveExtendedAttributes) + Toggle("Show transfer progress", isOn: $showProgress) + } + + Section("Exclusions") { + TextEditor(text: $exclusionsText) + .font(.system(.body, design: .monospaced)) + .frame(minHeight: 90) + Text("One exclusion pattern per line.") + .font(.caption) + .foregroundStyle(.secondary) + } + + Section("Advanced") { + TextField("Additional rsync arguments", text: $additionalArguments) + .font(.system(.body, design: .monospaced)) + } + } + .formStyle(.grouped) + .navigationTitle(existingJob == nil ? "New Sync Job" : "Edit Sync Job") + .toolbar { + ToolbarItem(placement: .cancellationAction) { + Button("Cancel") { dismiss() } + } + ToolbarItem(placement: .confirmationAction) { + Button("Save") { save() } + .buttonStyle(.borderedProminent) + .keyboardShortcut(.defaultAction) + .disabled(!canSave) + } + } + .task { + guard let initialSection else { return } + try? await Task.sleep(for: .milliseconds(120)) + withAnimation { proxy.scrollTo(initialSection, anchor: .top) } + } + } + } + .frame(width: 690, height: 820) + } + + private var canSave: Bool { + !name.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty && + !sourcePath.isEmpty && + !destinationPath.isEmpty && + (!isRemote || !remoteHost.isEmpty) + } + + private var schedulePreview: String { + let previewJob = SyncJob() + previewJob.scheduleEnabled = scheduleEnabled + previewJob.scheduleKind = scheduleKind + previewJob.scheduleStartAt = scheduleStartAt + previewJob.scheduleIntervalMinutes = scheduleIntervalMinutes + if let next = previewJob.calculateNextRun() { + return "Next run: \(next.formatted(date: .abbreviated, time: .shortened))" + } + return "No future run is currently scheduled." + } + + private func save() { + let job = existingJob ?? SyncJob() + job.name = name.trimmingCharacters(in: .whitespacesAndNewlines) + job.sourcePath = sourcePath + job.destinationPath = destinationPath + job.isRemote = isRemote + job.remoteHost = remoteHost + job.remoteUser = remoteUser + job.remotePort = remotePort + job.sshKeyPath = sshKeyPath + job.archive = archive + job.compress = compress + job.deleteExtraneous = deleteExtraneous + job.preservePermissions = preservePermissions + job.preserveExtendedAttributes = preserveExtendedAttributes + job.showProgress = showProgress + job.exclusionsText = exclusionsText + job.additionalArguments = additionalArguments + job.isEnabled = isEnabled + job.scheduleEnabled = scheduleEnabled + job.scheduleKind = scheduleEnabled ? scheduleKind : .manual + job.scheduleStartAt = scheduleStartAt + job.scheduleIntervalMinutes = scheduleIntervalMinutes + job.nextRunAt = job.calculateNextRun(after: Date().addingTimeInterval(-1)) + job.watchEnabled = watchEnabled + job.watchPath = watchPath + job.watchDebounceSeconds = watchDebounceSeconds + job.updatedAt = Date() + if existingJob == nil { modelContext.insert(job) } + try? modelContext.save() + NotificationCenter.default.post(name: .syncJobsChanged, object: nil) + dismiss() + } +} diff --git a/RsyncManager/Views/Jobs/JobListView.swift b/RsyncManager/Views/Jobs/JobListView.swift new file mode 100644 index 0000000..d08525f --- /dev/null +++ b/RsyncManager/Views/Jobs/JobListView.swift @@ -0,0 +1,352 @@ +import SwiftUI +import SwiftData + +struct JobListView: View { + @Environment(\.modelContext) private var modelContext + @EnvironmentObject private var automation: BackgroundSyncManager + @Query(sort: \SyncJob.name) private var jobs: [SyncJob] + @Binding var selection: SyncJob? + @Binding var showingNewJob: Bool + @State private var searchText = "" + @State private var filter: JobFilter = .all + + var body: some View { + VStack(spacing: 0) { + dashboardHeader + + Picker("Filter", selection: $filter) { + ForEach(JobFilter.allCases) { item in + Text(item.title).tag(item) + } + } + .pickerStyle(.segmented) + .labelsHidden() + .padding(.horizontal, 14) + .padding(.bottom, 10) + + Divider() + + if filteredJobs.isEmpty { + emptyState + } else { + List(selection: $selection) { + ForEach(filteredJobs) { job in + JobRow(job: job, isRunning: automationActivityMatches(job)) + .tag(job) + .listRowInsets(EdgeInsets(top: 5, leading: 10, bottom: 5, trailing: 10)) + .contextMenu { + Button("Open Job") { selection = job } + Button("Duplicate") { duplicate(job) } + Divider() + Button(job.isEnabled ? "Disable" : "Enable") { + job.isEnabled.toggle() + job.updatedAt = Date() + saveAndRefresh() + } + Button("Delete", role: .destructive) { delete(job) } + } + } + } + .listStyle(.sidebar) + } + } + } + + private var dashboardHeader: some View { + VStack(alignment: .leading, spacing: 12) { + HStack { + VStack(alignment: .leading, spacing: 2) { + Text("Jobs") + .font(.headline) + Text("\(jobs.count) configured job\(jobs.count == 1 ? "" : "s")") + .font(.caption) + .foregroundStyle(.secondary) + } + Spacer() + statusPill + + Button { + showingNewJob = true + } label: { + Image(systemName: "plus") + } + .buttonStyle(.borderedProminent) + .help("New Sync Job") + } + + HStack(spacing: 8) { + TextField("Search jobs", text: $searchText) + .textFieldStyle(.roundedBorder) + + Button { + automation.syncAllEnabledJobs() + } label: { + Label("Sync All", systemImage: "arrow.triangle.2.circlepath") + } + .buttonStyle(.bordered) + .disabled(jobs.allSatisfy { !$0.isEnabled } || automation.isSyncAllRunning) + .help("Run every enabled sync job in sequence") + } + + HStack(spacing: 9) { + metricCard(value: automation.scheduledJobCount, title: "Scheduled", icon: "calendar.badge.clock", colour: .blue) + metricCard(value: automation.watchedJobCount, title: "Watching", icon: "eye.fill", colour: .purple) + } + } + .padding(14) + } + + @ViewBuilder + private var statusPill: some View { + if automation.activity == .idle { + Label("Ready", systemImage: "checkmark.circle.fill") + .font(.caption.weight(.semibold)) + .foregroundStyle(.green) + .padding(.horizontal, 9) + .padding(.vertical, 5) + .background(Color.green.opacity(0.10), in: Capsule()) + } else { + Label(automation.activityDisplayTitle, systemImage: "arrow.triangle.2.circlepath") + .font(.caption.weight(.semibold)) + .foregroundStyle(Color.accentColor) + .padding(.horizontal, 9) + .padding(.vertical, 5) + .background(Color.accentColor.opacity(0.10), in: Capsule()) + } + } + + private func metricCard(value: Int, title: String, icon: String, colour: Color) -> some View { + HStack(spacing: 9) { + ZStack { + RoundedRectangle(cornerRadius: 8, style: .continuous) + .fill(colour.opacity(0.11)) + Image(systemName: icon) + .foregroundStyle(colour) + } + .frame(width: 30, height: 30) + + VStack(alignment: .leading, spacing: 0) { + Text("\(value)") + .font(.headline) + Text(title) + .font(.caption2) + .foregroundStyle(.secondary) + } + Spacer(minLength: 0) + } + .padding(9) + .background(Color(nsColor: .controlBackgroundColor), in: RoundedRectangle(cornerRadius: 10, style: .continuous)) + .overlay { + RoundedRectangle(cornerRadius: 10, style: .continuous) + .stroke(Color.secondary.opacity(0.10)) + } + } + + private var emptyState: some View { + ContentUnavailableView( + searchText.isEmpty ? "No Jobs" : "No Matching Jobs", + systemImage: searchText.isEmpty ? "arrow.left.arrow.right.square" : "magnifyingglass", + description: Text(searchText.isEmpty ? "Create a sync job to get started." : "Try a different search or filter.") + ) + .frame(maxWidth: .infinity, maxHeight: .infinity) + } + + private var filteredJobs: [SyncJob] { + jobs.filter { job in + let matchesSearch = searchText.isEmpty || + job.name.localizedCaseInsensitiveContains(searchText) || + job.sourcePath.localizedCaseInsensitiveContains(searchText) || + job.destinationDisplay.localizedCaseInsensitiveContains(searchText) + + let matchesFilter: Bool + switch filter { + case .all: matchesFilter = true + case .scheduled: matchesFilter = job.scheduleEnabled && job.scheduleKind != .manual + case .watching: matchesFilter = job.watchEnabled + case .attention: matchesFilter = job.lastExitCode != nil && job.lastExitCode != 0 + } + return matchesSearch && matchesFilter + } + } + + private func automationActivityMatches(_ job: SyncJob) -> Bool { + if case .running(let name) = automation.activity { return name == job.name } + return false + } + + private func duplicate(_ job: SyncJob) { + let copy = SyncJob(name: job.name + " Copy", sourcePath: job.sourcePath, destinationPath: job.destinationPath) + copy.isRemote = job.isRemote + copy.remoteHost = job.remoteHost + copy.remoteUser = job.remoteUser + copy.remotePort = job.remotePort + copy.sshKeyPath = job.sshKeyPath + copy.archive = job.archive + copy.compress = job.compress + copy.deleteExtraneous = job.deleteExtraneous + copy.preservePermissions = job.preservePermissions + copy.preserveExtendedAttributes = job.preserveExtendedAttributes + copy.showProgress = job.showProgress + copy.exclusionsText = job.exclusionsText + copy.additionalArguments = job.additionalArguments + copy.isEnabled = job.isEnabled + copy.scheduleEnabled = job.scheduleEnabled + copy.scheduleKind = job.scheduleKind + copy.scheduleStartAt = job.scheduleStartAt + copy.scheduleIntervalMinutes = job.scheduleIntervalMinutes + copy.nextRunAt = copy.calculateNextRun(after: Date().addingTimeInterval(-1)) + copy.watchEnabled = job.watchEnabled + copy.watchPath = job.watchPath + copy.watchDebounceSeconds = job.watchDebounceSeconds + modelContext.insert(copy) + saveAndRefresh() + selection = copy + } + + private func delete(_ job: SyncJob) { + if selection?.id == job.id { selection = nil } + modelContext.delete(job) + saveAndRefresh() + } + + private func saveAndRefresh() { + try? modelContext.save() + NotificationCenter.default.post(name: .syncJobsChanged, object: nil) + } +} + +private struct JobRow: View { + let job: SyncJob + let isRunning: Bool + + var body: some View { + HStack(alignment: .top, spacing: 12) { + ZStack { + RoundedRectangle(cornerRadius: 10, style: .continuous) + .fill(iconColour.opacity(0.12)) + Image(systemName: job.isRemote ? "server.rack" : "folder.fill") + .font(.system(size: 16, weight: .semibold)) + .foregroundStyle(iconColour) + } + .frame(width: 38, height: 38) + + VStack(alignment: .leading, spacing: 6) { + HStack(spacing: 7) { + Text(job.name) + .font(.body.weight(.semibold)) + .lineLimit(1) + + if isRunning { + AnimatedSyncIndicator(size: 15, lineWidth: 2.2) + } + + Spacer() + statusIcon + } + + pathSummary + + HStack(spacing: 6) { + if job.scheduleEnabled && job.scheduleKind != .manual { + miniBadge(job.scheduleKind.title, icon: "calendar.badge.clock", colour: .blue) + } + if job.watchEnabled { + miniBadge("Watching", icon: "eye.fill", colour: .purple) + } + if !job.isEnabled { + miniBadge("Disabled", icon: "pause.fill", colour: .secondary) + } + } + + Text(timingText) + .font(.caption2) + .foregroundStyle(.tertiary) + .lineLimit(1) + } + } + .padding(10) + .background(Color(nsColor: .controlBackgroundColor), in: RoundedRectangle(cornerRadius: 12, style: .continuous)) + .overlay { + RoundedRectangle(cornerRadius: 12, style: .continuous) + .stroke(Color.secondary.opacity(0.09)) + } + .opacity(job.isEnabled ? 1 : 0.62) + } + + private var pathSummary: some View { + HStack(spacing: 5) { + Text(shortPath(job.sourcePath)) + .lineLimit(1) + .truncationMode(.middle) + Image(systemName: "arrow.right") + .font(.caption2.weight(.semibold)) + .foregroundStyle(.tertiary) + Text(shortPath(job.destinationDisplay)) + .lineLimit(1) + .truncationMode(.middle) + } + .font(.caption) + .foregroundStyle(.secondary) + } + + @ViewBuilder + private var statusIcon: some View { + if isRunning { + Image(systemName: "arrow.triangle.2.circlepath.circle.fill") + .foregroundStyle(Color.accentColor) + } else if job.lastExitCode == 0 { + Image(systemName: "checkmark.circle.fill") + .foregroundStyle(.green) + } else if job.lastExitCode != nil { + Image(systemName: "exclamationmark.triangle.fill") + .foregroundStyle(.orange) + } else { + Image(systemName: "circle.dashed") + .foregroundStyle(.tertiary) + } + } + + private var timingText: String { + if let next = job.nextRunAt, job.scheduleEnabled { + return "Next run \(next.formatted(.relative(presentation: .named)))" + } + if let last = job.lastRunAt { + return "Last run \(last.formatted(.relative(presentation: .named)))" + } + return "Not run yet" + } + + private var iconColour: Color { + if !job.isEnabled { return .secondary } + return job.isRemote ? .indigo : .blue + } + + private func shortPath(_ path: String) -> String { + guard path.count > 42 else { return path } + return "…" + path.suffix(41) + } + + private func miniBadge(_ title: String, icon: String, colour: Color) -> some View { + Label(title, systemImage: icon) + .font(.system(size: 9, weight: .semibold)) + .foregroundStyle(colour) + .padding(.horizontal, 6) + .padding(.vertical, 3) + .background(colour.opacity(0.10), in: Capsule()) + } +} + +private enum JobFilter: String, CaseIterable, Identifiable { + case all, scheduled, watching, attention + + var id: String { rawValue } + + var title: String { + switch self { + case .all: return "All" + case .scheduled: return "Scheduled" + case .watching: return "Watching" + case .attention: return "Issues" + } + } +} diff --git a/RsyncManager/Views/Runs/RunHistoryView.swift b/RsyncManager/Views/Runs/RunHistoryView.swift new file mode 100644 index 0000000..a865c80 --- /dev/null +++ b/RsyncManager/Views/Runs/RunHistoryView.swift @@ -0,0 +1,119 @@ +import SwiftUI +import SwiftData + +struct RunHistoryView: View { + @Environment(\.modelContext) private var modelContext + @Query(sort: \SyncRun.startedAt, order: .reverse) private var runs: [SyncRun] + @State private var selection: SyncRun? + let onBack: () -> Void + + var body: some View { + HSplitView { + VStack(spacing: 0) { + HStack(spacing: 10) { + VStack(alignment: .leading, spacing: 2) { + Text("Recent Runs") + .font(.headline) + Text("\(runs.count) recorded") + .font(.caption) + .foregroundStyle(.secondary) + } + + Spacer() + + Button("Clear", role: .destructive) { + runs.forEach(modelContext.delete) + selection = nil + try? modelContext.save() + } + .buttonStyle(.bordered) + .controlSize(.small) + .disabled(runs.isEmpty) + } + .padding(14) + + Divider() + + if runs.isEmpty { + ContentUnavailableView( + "No Run History", + systemImage: "clock.arrow.circlepath", + description: Text("Completed, failed and background synchronisations will appear here.") + ) + .frame(maxWidth: .infinity, maxHeight: .infinity) + } else { + List(selection: $selection) { + ForEach(runs) { run in + HStack(spacing: 11) { + Image(systemName: statusIcon(run)) + .foregroundStyle(statusColour(run)) + + VStack(alignment: .leading, spacing: 4) { + HStack { + Text(run.jobName) + .fontWeight(.semibold) + .lineLimit(1) + Spacer() + StatusBadge(run: run) + } + + Text(run.startedAt, format: .dateTime.day().month(.abbreviated).year().hour().minute()) + .font(.caption) + .foregroundStyle(.secondary) + + HStack(spacing: 6) { + Label(run.trigger.title, systemImage: run.trigger.systemImage) + .font(.caption2.weight(.semibold)) + .foregroundStyle(run.trigger == .watched ? Color.purple : Color.blue) + if run.wasDryRun { + Text("Dry run") + .font(.caption2.weight(.semibold)) + .foregroundStyle(.blue) + } + } + } + } + .padding(.vertical, 3) + .tag(run) + .contextMenu { + Button("Delete Log", role: .destructive) { + if selection?.id == run.id { selection = nil } + modelContext.delete(run) + try? modelContext.save() + } + } + } + } + .listStyle(.sidebar) + } + } + .frame(minWidth: 300, idealWidth: 340, maxWidth: 390) + + Group { + if let selection { + RunLogView(run: selection) + } else { + ContentUnavailableView( + "Select a Run", + systemImage: "clock.arrow.circlepath", + description: Text("Select a completed or failed run to inspect its summary and full log.") + ) + } + } + .frame(minWidth: 620, maxWidth: .infinity, maxHeight: .infinity) + } + .frame(maxWidth: .infinity, maxHeight: .infinity) + } + + private func statusIcon(_ run: SyncRun) -> String { + if run.isRunning { return "arrow.triangle.2.circlepath" } + if run.wasCancelled { return "xmark.circle.fill" } + return run.succeeded ? "checkmark.circle.fill" : "exclamationmark.triangle.fill" + } + + private func statusColour(_ run: SyncRun) -> Color { + if run.isRunning { return .blue } + if run.wasCancelled { return .secondary } + return run.succeeded ? .green : .orange + } +} diff --git a/RsyncManager/Views/Runs/RunLogView.swift b/RsyncManager/Views/Runs/RunLogView.swift new file mode 100644 index 0000000..5d80a95 --- /dev/null +++ b/RsyncManager/Views/Runs/RunLogView.swift @@ -0,0 +1,47 @@ +import SwiftUI + +struct RunLogView: View { + let run: SyncRun + + var body: some View { + ScrollView { + VStack(alignment: .leading, spacing: 20) { + HStack { + VStack(alignment: .leading) { + Text(run.jobName).font(.title.bold()) + Text(run.startedAt.formatted(date: .abbreviated, time: .standard)) + .foregroundStyle(.secondary) + } + Spacer() + StatusBadge(run: run) + } + + if let duration = run.duration { + LabeledContent("Duration", value: Duration.seconds(duration).formatted(.units(allowed: [.minutes, .seconds], width: .abbreviated))) + } + if let exitCode = run.exitCode { + LabeledContent("Exit code", value: String(exitCode)) + } + LabeledContent("Mode", value: run.wasDryRun ? "Dry Run" : "Live Run") + + console(title: "Command", text: run.command) + if !run.output.isEmpty { console(title: "Output", text: run.output) } + if !run.errorOutput.isEmpty { console(title: "Errors", text: run.errorOutput) } + } + .padding(28) + } + .navigationTitle("Run Log") + } + + private func console(title: String, text: String) -> some View { + GroupBox(title) { + ScrollView(.horizontal) { + Text(text) + .font(.system(.caption, design: .monospaced)) + .textSelection(.enabled) + .frame(maxWidth: .infinity, alignment: .leading) + } + .frame(maxWidth: .infinity, alignment: .leading) + } + } +} diff --git a/RsyncManager/Views/ScheduleCalendarView.swift b/RsyncManager/Views/ScheduleCalendarView.swift new file mode 100644 index 0000000..3b2ffa5 --- /dev/null +++ b/RsyncManager/Views/ScheduleCalendarView.swift @@ -0,0 +1,220 @@ +import SwiftUI +import SwiftData + +struct ScheduleCalendarView: View { + @Query(sort: \SyncJob.name) private var jobs: [SyncJob] + @State private var displayedMonth = Calendar.current.date(from: Calendar.current.dateComponents([.year, .month], from: Date())) ?? Date() + @State private var selectedDay = Date() + @State private var editingJob: SyncJob? + + private let calendar = Calendar.current + private let columns = Array(repeating: GridItem(.flexible(), spacing: 6), count: 7) + + var body: some View { + HStack(spacing: 0) { + VStack(spacing: 0) { + monthHeader + Divider() + calendarGrid + } + .frame(maxWidth: .infinity, maxHeight: .infinity) + + Divider() + + agenda + .frame(width: 320) + .background(.bar) + } + .sheet(item: $editingJob) { job in + JobEditorView(job: job) + } + } + + private var monthHeader: some View { + HStack { + Button { moveMonth(-1) } label: { Image(systemName: "chevron.left") } + .buttonStyle(.bordered) + VStack(alignment: .leading, spacing: 2) { + Text(displayedMonth.formatted(.dateTime.month(.wide).year())) + .font(.title2.bold()) + Text("\(monthOccurrences.count) scheduled runs") + .font(.caption) + .foregroundStyle(.secondary) + } + Spacer() + Button("Today") { + displayedMonth = calendar.date(from: calendar.dateComponents([.year, .month], from: Date())) ?? Date() + selectedDay = Date() + } + .buttonStyle(.borderedProminent) + Button { moveMonth(1) } label: { Image(systemName: "chevron.right") } + .buttonStyle(.bordered) + } + .padding(18) + } + + private var calendarGrid: some View { + VStack(spacing: 8) { + LazyVGrid(columns: columns, spacing: 6) { + ForEach(calendar.shortWeekdaySymbols, id: \.self) { symbol in + Text(symbol.uppercased()) + .font(.caption2.weight(.bold)) + .foregroundStyle(.secondary) + .frame(maxWidth: .infinity) + } + + ForEach(monthCells.indices, id: \.self) { index in + if let date = monthCells[index] { + dayCell(date) + } else { + Color.clear.frame(minHeight: 86) + } + } + } + } + .padding(16) + .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top) + } + + private func dayCell(_ date: Date) -> some View { + let occurrences = occurrences(on: date) + let selected = calendar.isDate(date, inSameDayAs: selectedDay) + let today = calendar.isDateInToday(date) + + return Button { + selectedDay = date + } label: { + VStack(alignment: .leading, spacing: 6) { + HStack { + Text("\(calendar.component(.day, from: date))") + .font(.body.weight(today ? .bold : .medium)) + .foregroundStyle(today ? Color.accentColor : .primary) + Spacer() + if !occurrences.isEmpty { + Text("\(occurrences.count)") + .font(.caption2.bold()) + .padding(.horizontal, 6) + .padding(.vertical, 2) + .background(Color.accentColor.opacity(0.14), in: Capsule()) + } + } + + ForEach(Array(occurrences.prefix(2)), id: \.id) { item in + HStack(spacing: 4) { + Circle().fill(Color.accentColor).frame(width: 5, height: 5) + Text(item.job.name) + .font(.caption2) + .lineLimit(1) + Spacer() + Text(item.date.formatted(date: .omitted, time: .shortened)) + .font(.caption2) + .foregroundStyle(.secondary) + } + } + Spacer(minLength: 0) + } + .padding(9) + .frame(maxWidth: .infinity, minHeight: 86, alignment: .topLeading) + .background(selected ? Color.accentColor.opacity(0.10) : Color(nsColor: .controlBackgroundColor), in: RoundedRectangle(cornerRadius: 10, style: .continuous)) + .overlay(RoundedRectangle(cornerRadius: 10, style: .continuous).stroke(selected ? Color.accentColor.opacity(0.6) : Color.secondary.opacity(0.12))) + } + .buttonStyle(.plain) + } + + private var agenda: some View { + VStack(alignment: .leading, spacing: 16) { + VStack(alignment: .leading, spacing: 3) { + Text("Agenda").font(.title3.bold()) + Text(selectedDay.formatted(date: .complete, time: .omitted)) + .font(.caption) + .foregroundStyle(.secondary) + } + + let items = occurrences(on: selectedDay) + if items.isEmpty { + ContentUnavailableView( + "No Scheduled Runs", + systemImage: "calendar", + description: Text("Select another day or add a schedule to a sync job.") + ) + } else { + ScrollView { + LazyVStack(spacing: 10) { + ForEach(items, id: \.id) { item in + VStack(alignment: .leading, spacing: 6) { + HStack { + Image(systemName: item.job.isRemote ? "server.rack" : "folder.fill") + .foregroundStyle(Color.accentColor) + Text(item.job.name).fontWeight(.semibold) + Spacer() + } + Label(item.date.formatted(date: .omitted, time: .shortened), systemImage: "clock") + .font(.caption) + .foregroundStyle(.secondary) + Text(item.job.destinationDisplay) + .font(.caption2) + .foregroundStyle(.secondary) + .lineLimit(2) + HStack { + Spacer() + Button("Edit Schedule") { editingJob = item.job } + .buttonStyle(.bordered) + .controlSize(.small) + } + } + .padding(12) + .frame(maxWidth: .infinity, alignment: .leading) + .background(.background, in: RoundedRectangle(cornerRadius: 12, style: .continuous)) + } + } + } + } + Spacer() + } + .padding(18) + } + + private var monthInterval: DateInterval { + calendar.dateInterval(of: .month, for: displayedMonth) ?? DateInterval(start: displayedMonth, duration: 2_592_000) + } + + private var monthCells: [Date?] { + let interval = monthInterval + let days = calendar.range(of: .day, in: .month, for: interval.start) ?? 1..<2 + let weekday = calendar.component(.weekday, from: interval.start) + let leading = (weekday - calendar.firstWeekday + 7) % 7 + var cells = Array(repeating: nil, count: leading) + for day in days { + if let date = calendar.date(byAdding: .day, value: day - 1, to: interval.start) { cells.append(date) } + } + while cells.count % 7 != 0 { cells.append(nil) } + return cells + } + + private var monthOccurrences: [CalendarOccurrence] { + scheduledJobs.flatMap { job in + job.occurrences(from: monthInterval.start, through: monthInterval.end).map { CalendarOccurrence(job: job, date: $0) } + }.sorted { $0.date < $1.date } + } + + private var scheduledJobs: [SyncJob] { + jobs.filter { $0.isEnabled && $0.scheduleEnabled && $0.scheduleKind != .manual } + } + + private func occurrences(on day: Date) -> [CalendarOccurrence] { + monthOccurrences.filter { calendar.isDate($0.date, inSameDayAs: day) } + } + + private func moveMonth(_ offset: Int) { + if let next = calendar.date(byAdding: .month, value: offset, to: displayedMonth) { + displayedMonth = next + selectedDay = next + } + } +} + +private struct CalendarOccurrence: Identifiable { + let job: SyncJob + let date: Date + var id: String { "\(job.id.uuidString)-\(date.timeIntervalSince1970)" } +}