Skip to content

Globbing problems #315

@mondeja

Description

@mondeja

From time to time, a bug raises in the building or linting process of the Simple Icons website.

Error output
[cargo-make] INFO - Execute Command: "cargo" "clippy" "--" "-D" "warnings" "-D" "clippy::print_stdout"
   Compiling simple-icons-sdk v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/libs/simple-icons-sdk)
    Checking simple-icons-website-types v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/libs/types)
    Checking simple-icons-website-ids v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/components/ids)
    Checking fast-fuzzy v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/libs/fast-fuzzy)
    Checking simple-icons-website-svg-defs v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/components/svg-defs)
    Checking simple-icons-website-controls-order-types v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/components/controls/order-types)
    Checking simple-icons-website-controls-layout-types v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/components/controls/layout-types)
   Compiling simple-icons v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/libs/simple-icons)
    Checking web-sys-simple-fetch v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/libs/web-sys-simple-fetch)
    Checking simple-icons-website-svg-icon v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/components/svg-icon)
    Checking simple-icons-website-url v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/components/url)
    Checking simple-icons-website-copy v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/components/copy)
    Checking web-sys-simple-events v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/libs/web-sys-simple-events)
    Checking simple-icons-website-storage v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/components/storage)
    Checking simple-icons-website-menu v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/components/menu)
   Compiling simple-icons-macros v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/libs/simple-icons-macros)
    Checking web-sys-simple-copy v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/libs/web-sys-simple-copy)
    Checking svg-path-bbox v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/libs/svg-path-bbox)
    Checking badge-maker v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/libs/badge-maker)
    Checking simple-icons-website-i18n v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/app/i18n)
    Checking simple-icons-website-grid-constants v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/components/grid/constants)
    Checking simple-icons-website-footer v0.1.0 (/home/runner/work/simple-icons-website-rs/simple-icons-website-rs/components/footer)
error: Unrecoverable errors:
       - Error reading file: IO error for operation on /home/runner/work/simple-icons-website-rs/simple-icons-website-rs/app/i18n/../../target/debug/incremental/simple_icons-3w0i66ur6r3wd/s-h5fap5hqsq-1jgcn4l-5ur9ipcp88i5dbscgxdgc6tyc: No such file or directory (os error 2)
  --> app/i18n/src/lib.rs:22:[29](https://github.com/simple-icons/simple-icons-website-rs/actions/runs/14287554905/job/40044507856#step:14:30)
   |
22 |         check_translations: "../../{app,components}/**/*.rs",
   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: could not compile `simple-icons-website-i18n` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
Error while executing command, exit code: 101
Error: Process completed with exit code 105.

After some debugging, I can see that it is caused by a system call which tries to get some information about a file in part of the tree that shouldn't be checked. Probably a race condition triggers it.

The problem radicates into the globwalk crate, which walkes irrelevant directories while matching globs. See Gilnaa/globwalk#31, which never have been merged. This crate is abandoned. In their README, they recommend the usage of the glob crate.

But the glob crate doesn't supports the curly braces pattern (see rust-lang/glob#2). That's the reason that lead me to implement globbing using globwalk.

And here we are. Globbing in Rust is still a pain. It would be really great to have the awesome Python's wcmatch library ported to Rust.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions