Repository navigation
v0.4.6
Added
- Automatic backups on a schedule (
a) — select a disk and pressato open the schedule editor. Rows are navigated with Up/Down and changed with Left/Right: frequency (every N minutes, every N hours, daily, weekly, monthly, yearly), start hour and minute (5-minute steps), weekday, day of month (1–28), month, and how many images to keep (1–30, or all). The summary line spells the result out ("weekly on Sunday at 03:00"). Enter saves the schedule toconfig.jsonand registers a Windows Task Scheduler job namedDiskUtility Backupwithschtasks.exe(run level highest, interactive logon — so it can reach your NAS without storing a password);xremoves both. The task runsdiskutility --scheduled-backupwhether or not the app is open, so nothing has to autostart or stay resident. Requires an elevated terminal and a saved backup destination (n). diskutility --scheduled-backup— the headless entry point the task runs. It finds the scheduled disk by serial number and size (never by disk number, which shifts as drives come and go), writesauto-<disk>-<serial>-<YYYYMMDD-HHMMSS>.imginto the scheduled folder using the same verified backup engine ass, then deletes the oldest images beyond the keep count (it also prunes first if the folder is short on space). A disk that is not connected at run time is reported and skipped. Everything goes todiskutility.log, and progress prints to the console if you run it by hand.- In-app update with
Shift+U— when the header shows a newer release,Shift+Uopens an Update dialog:ydownloads it, verifies the SHA-256 against the release'schecksums.txt, checks the binary runs, swaps it in, and on Enter the app quits and relaunches the new version in the same terminal with the same arguments.n/Esc declines. Progress steps are shown live in the dialog and failures leave the current version untouched. - Auto-update on launch — press
ain the Update dialog to toggle it (stored asauto_updateinconfig.json). When on, the app checks for a release before the TUI starts, installs it with the same verification, and restarts itself. It honours--no-update-check/DISKUTILITY_NO_UPDATE_CHECK. - winget packaging —
packaging/winget/make-manifests.ps1generates validated manifests for any published release (pulls the SHA-256 from itschecksums.txt),packaging/winget/submit.ps1submits or updatesviorizz.diskutilitythroughwingetcreate, and a newwingetjob in the release workflow submits every future version automatically once theWINGET_TOKENrepository secret is set (it is skipped without it). The first submission is a one-time manual step documented inpackaging/winget/README.md.
Changed
- Header banner now says
⬆ vX.Y.Z available — Shift+U to updateinstead of pointing at the command line. - Footer and help list
a autoandShift+U; the Help dialog grew two rows. diskutility --updateprints each step (check, download, verify, swap) as it goes.- The startup update check's opt-out logic is shared between the TUI and the launch-time auto-update.
Full Changelog: v0.4.5...v0.4.6