ripgrep/crates/core
mi-wada 7e05cde008
cli: improve configuration failure mode
This improves the error message printed when ripgrep can't read the
file path pointed to by RIPGREP_CONFIG_PATH. Specifically, before this
change:

    $ RIPGREP_CONFIG_PATH=no_exist_path rg 'search regex'
    no_exist_path: No such file or directory (os error 2)

And now after this change:

    $ RIPGREP_CONFIG_PATH=no_exist_path rg 'search regex'
    failed to read the file specified in RIPGREP_CONFIG_PATH: no_exist_path: No such file or directory (os error 2)

In the above examples, the first failure mode looks obvious, but that's
only because RIPGREP_CONFIG_PATH is being set at the same time that we
run the command. Often, the environment variable is set elsewhere and
the error message could be confusing outside of that context.

Closes #1990
2021-11-15 10:29:34 -05:00
..
app.rs doc: --field-match-separator's default value is ':' 2021-07-19 08:07:40 -04:00
args.rs edition: run 'cargo fix --edition --edition-idioms --all' 2021-06-01 21:07:37 -04:00
config.rs cli: improve configuration failure mode 2021-11-15 10:29:34 -05:00
logger.rs edition: run 'cargo fix --edition --edition-idioms --all' 2021-06-01 21:07:37 -04:00
main.rs cli: print warning if nothing was searched 2021-05-31 21:51:18 -04:00
messages.rs repo: move all source code in crates directory 2020-02-17 19:24:53 -05:00
path_printer.rs style: fix rust-analyzer lints in core 2020-03-15 09:04:54 -04:00
README.md repo: make ripgrep build with the new organization 2020-02-17 19:24:53 -05:00
search.rs cli: fix process leak 2021-05-31 21:51:18 -04:00
subject.rs style: fix rust-analyzer lints in core 2020-03-15 09:04:54 -04:00

ripgrep core

This is the core ripgrep crate. In particular, main.rs is where the main function lives.

Most of ripgrep core consists of two things:

  • The definition of the CLI interface, including docs for every flag.
  • Glue code that brings the grep-matcher, grep-regex, grep-searcher and grep-printer crates together to actually execute the search.

Currently, there are no plans to make ripgrep core available as an independent library. However, much of the heavy lifting of ripgrep is done via its constituent crates, which can be reused independent of ripgrep. Unfortunately, there is no guide or tutorial to teach folks how to do this yet.