Skip to content

v0.4.6

Choose a tag to compare

@github-actions github-actions released this 22 Aug 19:09
· 8 commits to main since this release

Added

  • Automatic backups on a schedule (a) — select a disk and press a to 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 to config.json and registers a Windows Task Scheduler job named DiskUtility Backup with schtasks.exe (run level highest, interactive logon — so it can reach your NAS without storing a password); x removes both. The task runs diskutility --scheduled-backup whether 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), writes auto-<disk>-<serial>-<YYYYMMDD-HHMMSS>.img into the scheduled folder using the same verified backup engine as s, 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 to diskutility.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+U opens an Update dialog: y downloads it, verifies the SHA-256 against the release's checksums.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 a in the Update dialog to toggle it (stored as auto_update in config.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.ps1 generates validated manifests for any published release (pulls the SHA-256 from its checksums.txt), packaging/winget/submit.ps1 submits or updates viorizz.diskutility through wingetcreate, and a new winget job in the release workflow submits every future version automatically once the WINGET_TOKEN repository secret is set (it is skipped without it). The first submission is a one-time manual step documented in packaging/winget/README.md.

Changed

  • Header banner now says ⬆ vX.Y.Z available — Shift+U to update instead of pointing at the command line.
  • Footer and help list a auto and Shift+U; the Help dialog grew two rows.
  • diskutility --update prints 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