New feature: starsky mount watcher cli
We added a new CLI service called starskymountwatchercli. It watches for mounted storage devices (like SD cards), checks whether they look like camera media, and starts importing automatically.
This gives you a hands-free ingest flow: plug in card, import starts.
What it does
- Watches mount events continuously.
- Detects camera storage with the same heuristics used by the importer.
- Starts an import only when the mounted volume is a likely camera card.
- Supports service mode per operating system.
Why this helps
If you import frequently, this removes repeated manual steps:
- Open the app.
- Find the mounted path.
- Start import.
With starskymountwatchercli running as a service, the process becomes event-driven.
Camera storage detection
The watcher does not import every drive. It applies camera-oriented checks first:
- Mounted volume is ready and accessible.
- Filesystem is camera-friendly (for example FAT-based media).
- Camera-like folder structure exists (such as
DCIMor other known patterns).
Only after these checks pass, the importer runs.
Service support by platform
The CLI includes service install and uninstall flows:
- macOS: launchd LaunchAgent
- Linux: systemd (system-level, with user-level fallback)
- Windows: Windows Service via
sc.exe
This means the watcher can run in the background without manual startup each time.
CLI usage
starskymountwatchercli --help
starskymountwatchercli --install
starskymountwatchercli --uninstall
Extra options:
--verboseor-vfor verbose logging--helpor-hfor usage and platform-specific hints
Typical workflow
- Install and start the service.
- Insert camera SD card or connect camera storage.
- Watcher receives mount event.
- Camera storage checks pass.
- Import starts automatically.
Notes for production use
- On macOS, Full Disk Access may be required for stable background operation.
- On Linux, service logs are available through
journalctl. - On Windows, service logs can be inspected in Event Viewer.
Final thoughts
starskymountwatchercli is a small feature with a large practical impact: less clicking, fewer missed imports, and a cleaner ingest pipeline for high-volume photo workflows.
