Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
cd87902
find: Fix -fstype with stacked mounts
tavianator Apr 8, 2025
6d6c40a
build(deps): bump assert_cmd from 2.0.16 to 2.0.17
dependabot[bot] Apr 17, 2025
f870d27
Merge pull request #538 from uutils/dependabot/cargo/assert_cmd-2.0.17
cakebaker Apr 17, 2025
2c3928b
build(deps): bump clap from 4.5.36 to 4.5.37
dependabot[bot] Apr 21, 2025
5cec2c3
Merge pull request #539 from uutils/dependabot/cargo/clap-4.5.37
cakebaker Apr 21, 2025
a571de6
Implement : Chained Type matcher arguments (#527)
Crypto-Darth Apr 24, 2025
3f026bf
Merge pull request #534 from Crypto-Darth/error-msgs
Crypto-Darth Apr 24, 2025
e5f7dae
Merge pull request #532 from tavianator/fstype-stacked
sylvestre Apr 24, 2025
2bb919e
build(deps): bump chrono from 0.4.40 to 0.4.41
dependabot[bot] Apr 30, 2025
9b51ba5
build(deps): bump nix from 0.29.0 to 0.30.0
dependabot[bot] Apr 30, 2025
63293fb
Merge pull request #542 from uutils/dependabot/cargo/chrono-0.4.41
cakebaker Apr 30, 2025
9836976
Merge pull request #543 from uutils/dependabot/cargo/nix-0.30.0
cakebaker Apr 30, 2025
db60087
build(deps): bump nix from 0.30.0 to 0.30.1
dependabot[bot] May 5, 2025
f072587
Merge pull request #544 from uutils/dependabot/cargo/nix-0.30.1
cakebaker May 5, 2025
1548034
Updated README to use SVG graphs.
tdulcet May 5, 2025
a607612
Merge pull request #545 from tdulcet/svg
sylvestre May 5, 2025
319e1de
ci: use ubuntu-latest instead of ubuntu-20.04
cakebaker May 7, 2025
41c1013
update link
Qelxiros May 9, 2025
be84586
Merge pull request #547 from Qelxiros/docs_dead_link
sylvestre May 9, 2025
73d5e90
Merge pull request #546 from cakebaker/ci_use_latest_ubuntu_in_releas…
sylvestre May 9, 2025
dd0b2d9
build(deps): bump tempfile from 3.19.1 to 3.20.0
dependabot[bot] May 12, 2025
de9a58a
build(deps): bump clap from 4.5.37 to 4.5.38
dependabot[bot] May 12, 2025
5204807
Merge pull request #549 from uutils/dependabot/cargo/clap-4.5.38
cakebaker May 12, 2025
6cbd032
Merge pull request #548 from uutils/dependabot/cargo/tempfile-3.20.0
cakebaker May 12, 2025
90845d9
build(deps): bump onig from 6.4.0 to 6.5.1
dependabot[bot] May 26, 2025
64a4345
Merge pull request #551 from uutils/dependabot/cargo/onig-6.5.1
cakebaker May 26, 2025
f96852e
build(deps): bump clap from 4.5.38 to 4.5.39
dependabot[bot] May 28, 2025
d55e2f9
Merge pull request #552 from uutils/dependabot/cargo/clap-4.5.39
cakebaker May 28, 2025
7034627
build(deps): bump clap from 4.5.39 to 4.5.40
dependabot[bot] Jun 10, 2025
8426482
Merge pull request #554 from uutils/dependabot/cargo/clap-4.5.40
cakebaker Jun 10, 2025
0b9f252
build(deps): bump argmax from 0.3.1 to 0.4.0
dependabot[bot] Jun 17, 2025
ce0067f
Merge pull request #556 from uutils/dependabot/cargo/argmax-0.4.0
cakebaker Jun 17, 2025
1984df4
build(deps): bump clap from 4.5.40 to 4.5.41
dependabot[bot] Jul 10, 2025
ed790b4
Merge pull request #557 from uutils/dependabot/cargo/clap-4.5.41
cakebaker Jul 10, 2025
a36d419
build(deps): bump clap from 4.5.41 to 4.5.42
dependabot[bot] Jul 30, 2025
001318d
Merge pull request #558 from uutils/dependabot/cargo/clap-4.5.42
cakebaker Jul 30, 2025
74f2009
build(deps): bump actions/download-artifact from 4 to 5
dependabot[bot] Aug 6, 2025
d43fd72
Merge pull request #559 from uutils/dependabot/github_actions/actions…
cakebaker Aug 6, 2025
e32735b
2025-10-12: README.md
sarnobat Oct 13, 2025
2cbb377
2025-10-12: README.md
sarnobat Oct 13, 2025
436dff6
porting findutils testing to use uutests
hz2 Apr 26, 2025
4a50619
2025-10-12: README.md
sarnobat Oct 13, 2025
550d2c1
2025-10-12: README.md
sarnobat Oct 13, 2025
3b38245
Merge branch 'port-uutests' of github.com:sarnobat/findutils into por…
sarnobat Oct 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ on:
jobs:
# Run 'dist plan' (or host) to determine what tasks we need to do
plan:
runs-on: "ubuntu-20.04"
runs-on: "ubuntu-latest"
outputs:
val: ${{ steps.plan.outputs.manifest }}
tag: ${{ !github.event.pull_request && github.ref_name || '' }}
Expand Down Expand Up @@ -129,7 +129,7 @@ jobs:
run: ${{ matrix.install_dist.run }}
# Get the dist-manifest
- name: Fetch local artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
with:
pattern: artifacts-*
path: target/distrib/
Expand Down Expand Up @@ -168,7 +168,7 @@ jobs:
needs:
- plan
- build-local-artifacts
runs-on: "ubuntu-20.04"
runs-on: "ubuntu-latest"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BUILD_MANIFEST_NAME: target/distrib/global-dist-manifest.json
Expand All @@ -177,14 +177,14 @@ jobs:
with:
submodules: recursive
- name: Install cached dist
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
with:
name: cargo-dist-cache
path: ~/.cargo/bin/
- run: chmod +x ~/.cargo/bin/dist
# Get all the local artifacts for the global tasks to use (for e.g. checksums)
- name: Fetch local artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
with:
pattern: artifacts-*
path: target/distrib/
Expand Down Expand Up @@ -218,22 +218,22 @@ jobs:
if: ${{ always() && needs.plan.outputs.publishing == 'true' && (needs.build-global-artifacts.result == 'skipped' || needs.build-global-artifacts.result == 'success') && (needs.build-local-artifacts.result == 'skipped' || needs.build-local-artifacts.result == 'success') }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
runs-on: "ubuntu-20.04"
runs-on: "ubuntu-latest"
outputs:
val: ${{ steps.host.outputs.manifest }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install cached dist
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
with:
name: cargo-dist-cache
path: ~/.cargo/bin/
- run: chmod +x ~/.cargo/bin/dist
# Fetch artifacts from scratch-storage
- name: Fetch artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
with:
pattern: artifacts-*
path: target/distrib/
Expand All @@ -253,7 +253,7 @@ jobs:
path: dist-manifest.json
# Create a GitHub Release while uploading all files to it
- name: "Download GitHub Artifacts"
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
with:
pattern: artifacts-*
path: artifacts
Expand Down Expand Up @@ -282,7 +282,7 @@ jobs:
# still allowing individual publish jobs to skip themselves (for prereleases).
# "host" however must run to completion, no skipping allowed!
if: ${{ always() && needs.host.result == 'success' }}
runs-on: "ubuntu-20.04"
runs-on: "ubuntu-latest"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ To ensure easy collaboration, we have guidelines for using Git and GitHub.
### Commit messages

You can read this section in the Git book to learn how to write good commit
messages: https://git-scm.com/book/ch5-2.html.
messages: https://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project.

In addition, here are a few examples for a summary line when committing to
uutils:
Expand Down
61 changes: 28 additions & 33 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ description = "Rust implementation of GNU findutils"
authors = ["uutils developers"]

[dependencies]
chrono = "0.4.40"
chrono = "0.4.41"
clap = "4.5"
faccess = "0.2.4"
walkdir = "2.5"
regex = "1.11"
onig = { version = "6.4", default-features = false }
onig = { version = "6.5", default-features = false }
uucore = { version = "0.0.30", features = ["entries", "fs", "fsext", "mode"] }
nix = { version = "0.29", features = ["fs", "user"] }
argmax = "0.3.1"
Expand All @@ -25,7 +25,7 @@ ctor = "0.4.1"
[dev-dependencies]
assert_cmd = "2"
filetime = "0.2"
nix = { version = "0.29", features = ["fs"] }
nix = { version = "0.30", features = ["fs"] }
predicates = "3"
serial_test = "3.2"
tempfile = "3"
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ bash util/build-gnu.sh tests/misc/help-version.sh

## Comparing with GNU

![Evolution over time - GNU testsuite](https://github.com/uutils/findutils-tracking/blob/main/gnu-results.png?raw=true)
![Evolution over time - BFS testsuite](https://github.com/uutils/findutils-tracking/blob/main/bfs-results.png?raw=true)
![Evolution over time - GNU testsuite](https://github.com/uutils/findutils-tracking/blob/main/gnu-results.svg?raw=true)
![Evolution over time - BFS testsuite](https://github.com/uutils/findutils-tracking/blob/main/bfs-results.svg?raw=true)

## Build/run with BFS

Expand All @@ -35,3 +35,4 @@ bash util/build-bfs.sh posix/basic
```

For more details, see https://github.com/uutils/findutils-tracking/

5 changes: 5 additions & 0 deletions dist-workspace.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,8 @@ pr-run-mode = "plan"
install-path = "CARGO_HOME"
# Whether to install an updater program
install-updater = false
# Ignore out-of-date contents
allow-dirty = ["ci"]

[dist.github-custom-runners]
x86_64-unknown-linux-gnu = "ubuntu-latest"
2 changes: 1 addition & 1 deletion src/find/matchers/entry.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ enum Entry {
}

/// File types.
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
#[derive(Clone, Copy, Debug, Eq, PartialEq, Hash)]
pub enum FileType {
Unknown,
Fifo,
Expand Down
3 changes: 2 additions & 1 deletion src/find/matchers/fs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ pub fn get_file_system_type(path: &Path, cache: &RefCell<Option<Cache>>) -> URes
let fs_list = uucore::fsext::read_fs_list()?;
let result = fs_list
.into_iter()
.find(|fs| fs.dev_id == dev_id)
.filter(|fs| fs.dev_id == dev_id)
.next_back()
.map_or_else(String::new, |fs| fs.fs_type);

// cache the latest query if not a match before
Expand Down
8 changes: 6 additions & 2 deletions src/find/matchers/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -720,7 +720,9 @@ fn build_matcher_tree(
i += 1;
let matcher = UserMatcher::from_user_name(user)
.or_else(|| Some(UserMatcher::from_uid(user.parse::<u32>().ok()?)))
.ok_or_else(|| format!("{user} is not the name of a known user"))?;
.ok_or_else(|| {
format!("invalid user name or UID argument to -user: '{user}'")
})?;
Some(matcher.into_box())
}
"-nouser" => Some(NoUserMatcher {}.into_box()),
Expand Down Expand Up @@ -749,7 +751,9 @@ fn build_matcher_tree(
i += 1;
let matcher = GroupMatcher::from_group_name(group)
.or_else(|| Some(GroupMatcher::from_gid(group.parse::<u32>().ok()?)))
.ok_or_else(|| format!("{group} is not the name of an existing group"))?;
.ok_or_else(|| {
format!("invalid group name or GID argument to -group: '{group}'")
})?;
Some(matcher.into_box())
}
"-nogroup" => Some(NoGroupMatcher {}.into_box()),
Expand Down
3 changes: 2 additions & 1 deletion src/find/matchers/printf.rs
Original file line number Diff line number Diff line change
Expand Up @@ -446,7 +446,8 @@ fn format_directive<'entry>(
uucore::fsext::read_fs_list().expect("Could not find the filesystem info");
fs_list
.into_iter()
.find(|fs| fs.dev_id == dev_id)
.filter(|fs| fs.dev_id == dev_id)
.next_back()
.map_or_else(String::new, |fs| fs.fs_type)
.into()
}
Expand Down
Loading