Commit Graph

1022 Commits

Author SHA1 Message Date
oech3 575bf0aef9 Publish binary from main instead of discarding (#618) latest-commit 2026-06-04 22:34:18 +02:00
vip892766gma b07b27d13f chore: improve findutils maintenance path (#687) 2026-06-04 21:28:34 +02:00
Sylvestre Ledru 9a1e379a9d fix: avoid panic on -fprintf with missing arguments (#698)
Fixes #696
2026-06-05 02:41:58 +08:00
Jesse Rosenstock 5269e233a6 find: implement -ok and -okdir (#650)
-ok is like -exec ... ; but prompts the user on stderr before each
invocation and only runs the command if the response is affirmative
(starts with 'y' or 'Y').  -okdir is the corresponding -execdir variant.
Only the ';' terminator is accepted: POSIX does not define -ok ... + and
GNU find rejects it.

Response source: GNU find reads from /dev/tty so that the user's answer
always comes from the real terminal even when stdin is occupied (e.g.
`find -files0-from - -ok rm {} \;` reads paths from stdin, so responses
cannot also come from there).  /dev/tty is the POSIX name for a
process's controlling terminal and exists on all Unix-like systems.  We
open /dev/tty only when stdin is itself a terminal
(std::io::stdin().is_terminal() == true).  When stdin is a pipe or file,
we read from stdin directly — matching BSD find and making scripted use
(and integration tests via pipe_in()) work naturally without any special
environment variable.  On Windows, or when /dev/tty cannot be opened, we
likewise fall back to stdin.

Implementation: rather than a separate OkMatcher that duplicated
SingleExecMatcher's fields, constructor, and exec logic, the interactive
prompt is folded into SingleExecMatcher behind an `interactive: bool`
field.  `SingleExecMatcher::new_interactive()` constructs the -ok/-okdir
variant; `matches()` adds a guarded block that builds a GNU-find-style
prompt ("< executable arg... >? ") and calls `matcher_io.confirm()`
before executing.  If the user declines, the expression is false and the
command is not run.  This keeps the arg-parsing, path resolution,
current_dir logic, and error handling in one place so bug fixes apply to
both -exec and -ok.

Dependencies::confirm() trait method: abstracts prompt+read so matchers
remain testable without a real terminal; FakeDependencies uses a
VecDeque of preset responses.

Tests:
- Unit tests (exec_unit_tests.rs): confirmed executes command, declined
  skips command and returns false, confirmed but command fails returns
  false, -okdir runs in parent dir
- Parser unit tests (matchers/mod.rs): missing-arg errors, missing
  semicolon, correct parse, confirm/decline via FakeDependencies
- Integration tests (test_find.rs): pipe_in() makes stdin a pipe so
  is_terminal() returns false and responses are read from the pipe;
  "y"/"Y"/"yes"/" y" run command, "n" and empty response skip command,
  -okdir runs in parent dir, prompt format verified, missing-semicolon
  error

Closes https://github.com/uutils/findutils/issues/8.
2026-06-04 20:31:54 +02:00
dependabot[bot] fd876a7a8a build(deps): bump ctor from 1.0.6 to 1.0.7
Bumps [ctor](https://github.com/mmastrac/linktime) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/mmastrac/linktime/releases)
- [Changelog](https://github.com/mmastrac/linktime/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mmastrac/linktime/compare/ctor-1.0.6...ctor-1.0.7)

---
updated-dependencies:
- dependency-name: ctor
  dependency-version: 1.0.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-01 08:32:49 +02:00
dependabot[bot] cffa946ffa build(deps): bump uucore from 0.8.0 to 0.9.0
Bumps [uucore](https://github.com/uutils/coreutils) from 0.8.0 to 0.9.0.
- [Release notes](https://github.com/uutils/coreutils/releases)
- [Commits](https://github.com/uutils/coreutils/compare/0.8.0...0.9.0)

---
updated-dependencies:
- dependency-name: uucore
  dependency-version: 0.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-01 08:32:25 +02:00
dependabot[bot] 032d1c1fc0 build(deps): bump uutests from 0.8.0 to 0.9.0
Bumps [uutests](https://github.com/uutils/coreutils) from 0.8.0 to 0.9.0.
- [Release notes](https://github.com/uutils/coreutils/releases)
- [Commits](https://github.com/uutils/coreutils/compare/0.8.0...0.9.0)

---
updated-dependencies:
- dependency-name: uutests
  dependency-version: 0.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-01 08:26:02 +02:00
Sylvestre Ledru fe9e872710 CONTRIBUTING: link to the review guidelines website 2026-05-30 10:00:13 +02:00
dependabot[bot] c944cf7d1f build(deps): bump ctor from 1.0.5 to 1.0.6
Bumps [ctor](https://github.com/mmastrac/linktime) from 1.0.5 to 1.0.6.
- [Release notes](https://github.com/mmastrac/linktime/releases)
- [Changelog](https://github.com/mmastrac/linktime/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mmastrac/linktime/compare/ctor-1.0.5...ctor-1.0.6)

---
updated-dependencies:
- dependency-name: ctor
  dependency-version: 1.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-18 07:05:55 +02:00
Daniel Hofstetter 079330c28c ci: deactivate pre-commit hooks (#679) 2026-05-13 11:20:44 +02:00
dependabot[bot] ebd2d3c959 build(deps): bump filetime from 0.2.28 to 0.2.29
Bumps [filetime](https://github.com/alexcrichton/filetime) from 0.2.28 to 0.2.29.
- [Commits](https://github.com/alexcrichton/filetime/compare/0.2.28...0.2.29)

---
updated-dependencies:
- dependency-name: filetime
  dependency-version: 0.2.29
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-13 07:11:12 +02:00
dependabot[bot] b7c59b27a7 build(deps): bump nix from 0.31.2 to 0.31.3
Bumps [nix](https://github.com/nix-rust/nix) from 0.31.2 to 0.31.3.
- [Changelog](https://github.com/nix-rust/nix/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nix-rust/nix/compare/v0.31.2...v0.31.3)

---
updated-dependencies:
- dependency-name: nix
  dependency-version: 0.31.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-12 10:28:26 +02:00
dependabot[bot] 35e3925968 build(deps): bump filetime from 0.2.27 to 0.2.28
Bumps [filetime](https://github.com/alexcrichton/filetime) from 0.2.27 to 0.2.28.
- [Commits](https://github.com/alexcrichton/filetime/compare/0.2.27...0.2.28)

---
updated-dependencies:
- dependency-name: filetime
  dependency-version: 0.2.28
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-12 10:28:09 +02:00
dependabot[bot] 6e1922b508 build(deps): bump ctor from 1.0.1 to 1.0.5
Bumps [ctor](https://github.com/mmastrac/linktime) from 1.0.1 to 1.0.5.
- [Release notes](https://github.com/mmastrac/linktime/releases)
- [Changelog](https://github.com/mmastrac/linktime/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mmastrac/linktime/compare/ctor-1.0.1...ctor-1.0.5)

---
updated-dependencies:
- dependency-name: ctor
  dependency-version: 1.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-12 10:21:53 +02:00
oech3 8664976e40 CONTRIBUTING.md: drop outdated hint (#678) 2026-05-08 14:54:02 +02:00
Daniel Hofstetter 29c644fc72 tests/common/mod.rs: adapt to change in ctor 2026-05-07 10:47:04 +02:00
Daniel Hofstetter 68d6d805f6 Bump ctor from 0.12.0 to 1.0.1 2026-05-07 10:47:04 +02:00
xtqqczze fafd557eed actions: add security audit workflow 2026-05-05 16:40:58 +02:00
Kevin Burke 69a20eb6df xargs: accept hyphenated -I and -E values
GNU xargs treats the arguments to -I, -E, and -e as values even when
they begin with a hyphen. Clap was parsing those strings as options
instead, so invocations like 'xargs -I -_' failed before xargs could
process input.

Allow hyphen-leading values for those options and add regression
coverage for replacement and EOF markers that start with '-'.
2026-05-05 16:26:23 +02:00
xtqqczze cb5005b489 Add SECURITY.md
Copied from https://github.com/uutils/coreutils/blob/5e974797bd8050c2d425a706670254ad0323404d/SECURITY.md

Co-authored-by: Sylvestre Ledru <sylvestre@debian.org>
Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
2026-05-05 09:02:14 +02:00
dependabot[bot] 3b23c9a41e build(deps): bump ctor from 0.11.1 to 0.12.0
Bumps [ctor](https://github.com/mmastrac/rust-ctor) from 0.11.1 to 0.12.0.
- [Changelog](https://github.com/mmastrac/linktime/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mmastrac/rust-ctor/commits)

---
updated-dependencies:
- dependency-name: ctor
  dependency-version: 0.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-01 07:30:06 +02:00
dependabot[bot] b374033f88 build(deps): bump ctor from 0.10.1 to 0.11.1
Bumps [ctor](https://github.com/mmastrac/rust-ctor) from 0.10.1 to 0.11.1.
- [Changelog](https://github.com/mmastrac/rust-ctor/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mmastrac/rust-ctor/commits)

---
updated-dependencies:
- dependency-name: ctor
  dependency-version: 0.11.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-29 07:22:30 +02:00
dependabot[bot] 2332e46830 build(deps): bump onig from 6.5.2 to 6.5.3
Bumps [onig](https://github.com/iwillspeak/rust-onig) from 6.5.2 to 6.5.3.
- [Release notes](https://github.com/iwillspeak/rust-onig/releases)
- [Changelog](https://github.com/rust-onig/rust-onig/blob/main/CHANGELOG.md)
- [Commits](https://github.com/iwillspeak/rust-onig/compare/v6.5.2...v6.5.3)

---
updated-dependencies:
- dependency-name: onig
  dependency-version: 6.5.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-28 07:02:19 +02:00
dependabot[bot] 8c32bdd514 build(deps): bump onig from 6.5.1 to 6.5.2
Bumps [onig](https://github.com/iwillspeak/rust-onig) from 6.5.1 to 6.5.2.
- [Release notes](https://github.com/iwillspeak/rust-onig/releases)
- [Changelog](https://github.com/rust-onig/rust-onig/blob/main/CHANGELOG.md)
- [Commits](https://github.com/iwillspeak/rust-onig/compare/V6.5.1...v6.5.2)

---
updated-dependencies:
- dependency-name: onig
  dependency-version: 6.5.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-27 07:14:28 +02:00
dependabot[bot] b851e75a45 build(deps): bump ctor from 0.10.0 to 0.10.1
Bumps [ctor](https://github.com/mmastrac/rust-ctor) from 0.10.0 to 0.10.1.
- [Changelog](https://github.com/mmastrac/rust-ctor/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mmastrac/rust-ctor/commits)

---
updated-dependencies:
- dependency-name: ctor
  dependency-version: 0.10.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-23 07:12:04 +02:00