vaultik/internal/snapshot
sneak badc0c07e0 Add pluggable storage backend, PID locking, and improved scan progress
Storage backend:
- Add internal/storage package with Storer interface
- Implement FileStorer for local filesystem storage (file:// URLs)
- Implement S3Storer wrapping existing s3.Client
- Support storage_url config field (s3:// or file://)
- Migrate all consumers to use storage.Storer interface

PID locking:
- Add internal/pidlock package to prevent concurrent instances
- Acquire lock before app start, release on exit
- Detect stale locks from crashed processes

Scan progress improvements:
- Add fast file enumeration pass before stat() phase
- Use enumerated set for deletion detection (no extra filesystem access)
- Show progress with percentage, files/sec, elapsed time, and ETA
- Change "changed" to "changed/new" for clarity

Config improvements:
- Add tilde expansion for paths (~/)
- Use xdg library for platform-specific default index path
2025-12-19 11:52:51 +07:00
..
backup_test.go Major refactoring: Updated manifest format and renamed backup to snapshot 2025-07-26 03:27:47 +02:00
file_change_test.go Integrate afero filesystem abstraction library 2025-07-26 15:33:18 +02:00
manifest.go Major refactoring: Updated manifest format and renamed backup to snapshot 2025-07-26 03:27:47 +02:00
module.go Add pluggable storage backend, PID locking, and improved scan progress 2025-12-19 11:52:51 +07:00
progress.go Refactor: Move Vaultik struct and methods to internal/vaultik package 2025-07-26 14:47:26 +02:00
scanner_test.go Integrate afero filesystem abstraction library 2025-07-26 15:33:18 +02:00
scanner.go Add pluggable storage backend, PID locking, and improved scan progress 2025-12-19 11:52:51 +07:00
snapshot_test.go Integrate afero filesystem abstraction library 2025-07-26 15:33:18 +02:00
snapshot.go Add pluggable storage backend, PID locking, and improved scan progress 2025-12-19 11:52:51 +07:00