Skip to content

Allow --prune to skip confirmation with -f#129

Merged
babarot merged 1 commit into
mainfrom
babarot/prune-force-skip-confirm
Jun 7, 2026
Merged

Allow --prune to skip confirmation with -f#129
babarot merged 1 commit into
mainfrom
babarot/prune-force-skip-confirm

Conversation

@babarot

@babarot babarot commented Jun 7, 2026

Copy link
Copy Markdown
Owner

WHAT

Make gomi --prune=<duration> skip the two confirmation prompts (and the file listing table) when -f/--force is passed. The existing --prune=orphans path already honors -f; this aligns the duration-based path with the same behavior.

Also drop the (dummy) marker from the -f/--force flag description, since the flag now has real effect under --prune.

Related: #126

WHY

Requested in #126 for scripting use cases. The user wants to run prune non-interactively from init scripts, for example:

[[ "$(tty)" == /dev/tty1 ]] && gomi -V > /dev/null && gomi --prune=30d -f

Today the duration-based prune always asks twice, so it cannot be used unattended. Reusing the existing -f flag avoids adding a new option, keeps parity with the orphans path, and matches what rm -f does conceptually.

Implementation gates the existing prompt block in permanentlyDeleteByTimeRange on !c.option.Rm.Force. When -f is not set, behavior is unchanged: files are listed, summary is printed, and both confirmations are required. When -f is set, gomi proceeds straight to deletion.

Verified manually: with backdated trashinfo files, gomi --prune=30d -f deletes matches without prompting, while gomi --prune=30d still shows the table and prompts as before. go test ./internal/cli/... passes.

@github-actions

github-actions Bot commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

Code Metrics Report

main (8c75e88) #129 (19774ef) +/-
Coverage 71.2% 71.2% 0.0%
Code to Test Ratio 1:1.5 1:1.5 0.0
Test Execution Time 7s 7s 0s
Details
  |                     | main (8c75e88) | #129 (19774ef) | +/-  |
  |---------------------|----------------|----------------|------|
  | Coverage            |          71.2% |          71.2% | 0.0% |
  |   Files             |             24 |             24 |    0 |
  |   Lines             |           1101 |           1101 |    0 |
  |   Covered           |            784 |            784 |    0 |
  | Code to Test Ratio  |          1:1.5 |          1:1.5 |  0.0 |
  |   Code              |           2739 |           2739 |    0 |
  |   Test              |           4280 |           4280 |    0 |
  | Test Execution Time |             7s |             7s |   0s |

Reported by octocov

@babarot babarot added the kind/improvement An improvement to existing functionality; not a new feature or bug fix label Jun 7, 2026
@babarot babarot marked this pull request as ready for review June 7, 2026 07:19
@babarot babarot merged commit c252ba1 into main Jun 7, 2026
5 checks passed
@babarot babarot deleted the babarot/prune-force-skip-confirm branch June 7, 2026 07:22
@github-actions github-actions Bot mentioned this pull request May 30, 2026
@babarot babarot mentioned this pull request Jun 7, 2026
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Jun 10, 2026
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [babarot/gomi](https://github.com/babarot/gomi) | patch | `v1.6.3` β†’ `v1.6.4` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>babarot/gomi (babarot/gomi)</summary>

### [`v1.6.4`](https://github.com/babarot/gomi/blob/HEAD/CHANGELOG.md#v164---2026-06-07)

[Compare Source](babarot/gomi@v1.6.3...v1.6.4)

##### Improvements

- fix: keep restore TUI within terminal bounds (closes [#&#8203;125](babarot/gomi#125)) by [@&#8203;babarot](https://github.com/babarot) in [#&#8203;127](babarot/gomi#127)
- Allow --prune to skip confirmation with -f by [@&#8203;babarot](https://github.com/babarot) in [#&#8203;129](babarot/gomi#129)

##### Refactorings

- Fix concurrency safety: eliminate global SelectionManager and add mutex to legacy Storage by [@&#8203;babarot](https://github.com/babarot) in [#&#8203;118](babarot/gomi#118)
- Refactor: extract Trash interface, move orphan logic, and DRY up XDG storage by [@&#8203;babarot](https://github.com/babarot) in [#&#8203;119](babarot/gomi#119)
- Refactor: decouple config, remove unused fields, and narrow UI dependencies by [@&#8203;babarot](https://github.com/babarot) in [#&#8203;120](babarot/gomi#120)
- Update architecture docs and rename manager variables to match Trash interface by [@&#8203;babarot](https://github.com/babarot) in [#&#8203;121](babarot/gomi#121)
- Fix fundamental design issues: circular references, untestable prompts, and implicit init() by [@&#8203;babarot](https://github.com/babarot) in [#&#8203;122](babarot/gomi#122)
- Reduce syscalls in gomi -b restore path by [@&#8203;babarot](https://github.com/babarot) in [#&#8203;123](babarot/gomi#123)

</details>

---

### Configuration

πŸ“… **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

β™» **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox.

πŸ”• **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTEuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE5MS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiLCJhdXRvbWF0aW9uOmJvdC1hdXRob3JlZCIsImRlcGVuZGVuY3ktdHlwZTo6cGF0Y2giXX0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/improvement An improvement to existing functionality; not a new feature or bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant