feat: implement daemon mode with filesystem watching
All checks were successful
check / check (pull_request) Successful in 4m57s
All checks were successful
check / check (pull_request) Successful in 4m57s
Replace the daemon mode stub with a full implementation that: - Watches configured snapshot paths for filesystem changes using fsnotify (inotify on Linux, FSEvents on macOS, etc.) - Runs an initial full backup on startup - Triggers incremental backups at backup_interval when changes are detected, only for snapshots whose paths were affected - Performs full periodic scans at full_scan_interval regardless of detected changes - Respects min_time_between_run to prevent excessive backup runs - Handles SIGTERM/SIGINT for graceful shutdown, completing any in-progress backup before exiting - Automatically watches newly created subdirectories - Uses a backup semaphore to prevent concurrent backup runs New files: - internal/vaultik/daemon.go: RunDaemon(), changeTracker, watcher setup - internal/vaultik/daemon_test.go: Tests for changeTracker, isSubpath, concurrency safety, and daemon constants closes #3
This commit is contained in:
1
go.mod
1
go.mod
@@ -13,6 +13,7 @@ require (
|
||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.90.0
|
||||
github.com/aws/smithy-go v1.23.2
|
||||
github.com/dustin/go-humanize v1.0.1
|
||||
github.com/fsnotify/fsnotify v1.9.0
|
||||
github.com/gobwas/glob v0.2.3
|
||||
github.com/google/uuid v1.6.0
|
||||
github.com/johannesboyne/gofakes3 v0.0.0-20250603205740-ed9094be7668
|
||||
|
||||
Reference in New Issue
Block a user