Skip to content

rustClean v0.4.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 12:10
· 24 commits to main since this release
f32246b

Added

  • Optional mouse support: M turns it on or off (off by default and not
    saved, as mouse capture stops the terminal from selecting text). A click
    selects a row in the lists, the menu and the summary, or a treemap block; a
    double click opens it like Enter; the wheel moves through lists and
    scrolls the help, the deletion log and the failure list. Questions before
    deleting, uninstalling or running a cleanup take no mouse input
    (#24).
  • "iPhone / iPad backups" report, the last of the reports in the menu (the
    tools move down by one): one row per backup folder in MobileSync/Backup
    (macOS, and iTunes / Apple Devices on Windows) with the device name and
    model, the date of the backup, the iOS version and whether it is
    encrypted, read from the backup's Info.plist and Manifest.plist. The
    newest backup of each device is marked, and the note warns that a deleted
    backup cannot restore the device. The age filter goes by the backup date.
    When the folder cannot be read (Full Disk Access) or was not scanned, the
    report says so and how to fix it
    (#11).
  • An empty report shows its note (why nothing was found) in place of the
    list; before, only "No results." was shown.
  • w in the folder list and the treemap saves the current folder as a
    self-contained HTML page with a zoomable treemap (click a folder to zoom
    in, the path or Esc to go back), colored by type or by age, in the
    current language. The data and script are inside the file and it makes no
    network requests, so it works offline and on a phone. At most 4 levels and
    3,000 blocks; small entries share an "other" block. The file goes to the
    working directory (else the home folder) as
    rustclean-treemap-YYYYMMDD-HHMMSS.html and never replaces an existing one
    (#27).
  • Linux system caches on the tools screen: the apt, dnf and pacman package
    caches, the systemd journal (journalctl --disk-usage) and disabled snap
    revisions (snap list --all). They need root, so rustClean shows the exact
    sudo command (apt-get clean, dnf clean all, paccache -rk1 /
    pacman -Scc, journalctl --vacuum-time=2weeks,
    snap remove <name> --revision=<rev>) for you to run instead of running it
    (#18).
  • Windows folders on the tools screen: %TEMP% is moved to the Recycle Bin
    after you confirm, entry by entry, skipping files in use;
    C:\Windows\Temp and the Windows Update download cache are measured when
    readable and show the commands for an administrator PowerShell; the Recycle
    Bin shows its size per drive, with Clear-RecycleBin to run yourself
    (#19).
  • rustclean report <kind> [PATH] runs a report without the interface and
    prints it as a readable table, or with --csv / --json for scripts.
    Every report has a kebab-case name (largest-files, dev-junk,
    duplicates…); --older DAYS applies the age filter where the report has
    one, and --limit N caps the rows. PATH defaults to the current folder.
    It only reads: nothing is deleted
    (#20).
  • o saves the list on screen as CSV or JSON: the folder list, the treemap,
    the summary lists and every result list. The file goes to the working
    folder (or the home folder when that is not writable) as
    rustclean-<list>-YYYYMMDD-HHMMSS.csv|json and never replaces an existing
    file. Columns: absolute path, apparent size, size on disk, file count,
    modified and created (ISO 8601, UTC), the group and the row's detail; a
    group is saved as its members
    (#21).
  • Configuration file: an optional config.toml in the data directory sets
    folders the scan skips ([scan] exclude, ~ allowed; also for
    --summary and report), the thresholds of "Old and large files" and of the duplicate
    search ([reports]), and the size and sort order a scan opens with
    ([view]). The menu and report notes show the values in effect. A broken
    file never stops rustClean: it starts with the defaults and names the file
    and the error's line and column; unknown keys only give a warning.
    rustclean --config prints the file's path and the values in effect
    (#22).
  • More developer caches in the tools cleanup: Go (go clean -modcache,
    go clean -cache), Maven (~/.m2/repository), Bun, uv (uv cache clean),
    conda (conda clean --all, sized with its own dry run), the Flutter / Dart
    pub cache and Playwright's browsers
    (#14).
  • Xcode archives: their size, and moving archives older than 12 months to
    the trash (data loss: they are needed to symbolicate crash reports).
    Simulators never used, or not used for over a year, can be deleted all at
    once or one by one
    (#16).
  • Android SDK: emulators with their sizes, deleting one with avdmanager
    (or moving it to the trash without it), leftover .avd folders, and
    system images no emulator uses
    (#15).
  • Docker Desktop's Docker.raw: its size on disk next to its apparent size,
    and a note on how the space comes back after pruning
    (#17).
  • Tool cleanups refuse to empty or trash a relative path, a root, the
    home folder or a folder above it, or a standard folder such as Desktop,
    Documents or ~/Library, for example when PUB_CACHE points to the
    home folder.
  • The tools screen shortens long step lists to fit, the action picker
    scrolls, and a step chosen twice runs once. Some tools show a note under
    their actions.

Fixed

  • English counts use the singular for one: "1 item", "1 row", "1 file"
    instead of "1 items" (and "1 item was inaccessible", "the parent folder of
    1 item").
  • The clutter report no longer lists a folder it could not look into as
    empty. A folder without read permission, on another disk or skipped by
    the scan showed nothing below it and was offered as an empty folder,
    although it may hold files. Such folders, and the folders around them,
    are now never counted as empty.