Commit graph

405 commits

Author SHA1 Message Date
sharkdp
e3c77ef7f5 Update --size documentation
closes #584
2020-05-19 17:06:32 +02:00
sharkdp
9d3cb69935 Minor refactoring 2020-05-19 15:57:47 +02:00
DJRHails
da9af8c1eb Improve consistency of linting 2020-05-19 15:57:47 +02:00
DJRHails
4f4591bfdc Correct Err return to prevent panic 2020-05-19 15:57:47 +02:00
DJRHails
28d6a4f518 Check for no valid search paths to prevent panic 2020-05-19 15:57:47 +02:00
DJRHails
42719624a8 Refactor to for-loop 2020-05-19 15:57:47 +02:00
DJRHails
c5a311d3cc Allow for missing directories 2020-05-19 15:57:47 +02:00
sharkdp
3283a7b345 Fix warning 2020-05-19 14:01:00 +02:00
Bobbie Soedirgo
79d5a5bdc5 Add global fdignore support 2020-05-18 21:19:09 +02:00
Alexandru Macovei
1a16003cca [ownership][errs] ':' and '' args to --owner result in noop; reject strings with more than one ':' 2020-05-18 21:11:33 +02:00
Alexandru Macovei
6a68ac8c27 [ownership] add help text for --owner 2020-05-18 21:11:33 +02:00
Alexandru Macovei
09cdf9831d [ownership] parse leading exclamation mark as negation of ownership component 2020-05-18 21:11:33 +02:00
Alexandru Macovei
22a55361e0 [ownership] change uid/gid storage to tristate enum for negation 2020-05-18 21:11:33 +02:00
Alexandru Macovei
d7cc34e36f [ownership] depend on users 0.10.0 on unix; parse user and group names 2020-05-18 21:11:33 +02:00
Alexandru Macovei
4f9a02400a [ownership] add --owner arg parsing and storage 2020-05-18 21:11:33 +02:00
Alexandru Macovei
30cb4adc61 [ownership] initial struct, parsing, and test framework 2020-05-18 21:11:33 +02:00
Alex Kitchens
151eaad043 Fix "unnecessary braces" warning
Original warning:
```
warning: unnecessary braces around block return value
 --> src/filter/size.rs:5:39
  |
5 |     static ref SIZE_CAPTURES: Regex = { Regex::new(r"(?i)^([+-])(\d+)(b|[kmgt]i?b?)$").unwrap() };
  |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
  |
  = note: `#[warn(unused_braces)]` on by default

warning: 1 warning emitted
```
2020-05-10 21:27:55 +02:00
Alexandru Macovei
4f4330167a Fix some clippy lints, and format 2020-05-01 14:08:53 +02:00
Seamus Connor
b22285ffe4 Fix --glob behavior with empty pattern
With an empty pattern, --glob results in no matches. This does not
align with the behavior of --fixed-strings or --regex. Update the
initialization code to handle globs with empty patterns.
2020-04-26 22:01:29 +02:00
Tobias Kortkamp
04bcd546b2 Also add NetBSD and OpenBSD 2020-04-16 20:33:32 +02:00
Tobias Kortkamp
4b5e8941a7 Fix --list-details on FreeBSD 2020-04-16 20:33:32 +02:00
sharkdp
0335cc362b Do not allow list-details in combination with -1 2020-04-16 10:11:05 +02:00
sharkdp
1a96544b29 Remove two options from short -h help text 2020-04-16 10:02:29 +02:00
sharkdp
cb56add1d8 Add new --type socket and --type pipe filters
closes #511
2020-04-16 09:59:45 +02:00
sharkdp
4287cddc00 Add test 2020-04-15 23:32:28 +02:00
sharkdp
0b7febc3b6 Windows support (if GNU ls is installed) 2020-04-15 23:32:28 +02:00
sharkdp
d91100e354 Add comment why we prefer gls 2020-04-15 23:32:28 +02:00
sharkdp
0f5500adfc Do not show output of 'gls --version' 2020-04-15 23:32:28 +02:00
sharkdp
2685728695 Add MacOS support for -l/--list-details 2020-04-15 23:32:28 +02:00
sharkdp
3b42898a69 Always enable colors on Windows, closes #469 2020-04-15 19:23:59 +02:00
sharkdp
d63c63be8c Add --min-depth and --exact-depth
Add new `--min-depth <depth>` and `--exact-depth <depth>` options in addition to the existing
option to limit the maximum depth.

closes #404
2020-04-15 17:02:41 +02:00
sharkdp
47974b6479 --glob: '*' does not match on path separators 2020-04-15 16:41:56 +02:00
Danny Mösch
2bab4a2249 Add alias -1 for --max-results=1 2020-04-10 21:39:30 +02:00
sharkdp
95eae00126 Fix test on Windows 2020-04-04 18:46:08 +02:00
sharkdp
6c9e743d43 Print path as raw bytes, allowing invalid UTF-8 filenames to be passed to other processes 2020-04-04 18:46:08 +02:00
sharkdp
7e3c69c096 Reimplement dirname, basename, remove_extension for OsStr 2020-04-04 18:46:08 +02:00
sharkdp
439548c25a panic => unreachable 2020-04-04 18:46:08 +02:00
sharkdp
ed45d1c5af Remove duplicate 'strip prefix' function 2020-04-04 18:46:08 +02:00
sharkdp
e44f2f8540 Rewrite replace_path_separator function 2020-04-03 23:01:57 +02:00
sharkdp
2ea77e7cdc Add TODOs, move function 2020-04-03 22:51:41 +02:00
sharkdp
4815ee416e Remove process::exit instance 2020-04-03 22:36:32 +02:00
sharkdp
53557ef471 Clean up include order 2020-04-03 22:36:32 +02:00
sharkdp
f9372b55d5 Remove irrelevant TODO 2020-04-03 22:36:32 +02:00
sharkdp
4590ae8535 Proper error handling within walk.rs 2020-04-03 22:36:32 +02:00
sharkdp
bce95274e3 Proper error handling in main.rs 2020-04-03 22:36:32 +02:00
sharkdp
af9d8082a1 Better error message 2020-04-03 22:36:32 +02:00
sharkdp
094516aec3 Refactor directory handling 2020-04-03 22:36:32 +02:00
sharkdp
33eb857a81 Cleanup 2020-04-03 22:36:32 +02:00
sharkdp
6e96154d86 Add tests for strip_current_dir 2020-04-03 22:36:32 +02:00
sharkdp
556c40e1f4 Move strip_current_dir 2020-04-03 22:36:32 +02:00
sharkdp
b415d7234b Rename fshelper to filesystem 2020-04-03 22:36:32 +02:00
sharkdp
e0cba4b700 Remove 'internal' module 2020-04-03 22:36:32 +02:00
sharkdp
342d12db3f Remove possibility to use '--exec <cmd>' with a single dash 2020-04-03 22:36:32 +02:00
sharkdp
c79d1638f5 Move MAX_BUFFER_LENGTH 2020-04-03 22:36:32 +02:00
sharkdp
9ef9bf7b80 Add tests for regex_helper 2020-04-03 22:36:32 +02:00
sharkdp
809fd8fb78 Move regex helpers to new module 2020-04-03 22:36:32 +02:00
sharkdp
a3060f952e Move error macros to error.rs 2020-04-03 22:36:32 +02:00
sharkdp
65096a653e Move FdOptions to Options 2020-04-03 22:36:32 +02:00
sharkdp
9f738ad995 Move filter up from internal 2020-04-03 22:36:32 +02:00
sharkdp
5c27ab1a06 Move filetypes up from 'internal' 2020-04-03 22:36:32 +02:00
sharkdp
2cfb1a2bb2 Adapt --list-details help message 2020-04-03 11:28:01 +02:00
sharkdp
938dafda28 Clean up unused help texts 2020-04-03 11:26:20 +02:00
sharkdp
e2a7d3446b Inline the help texts 2020-04-03 11:24:47 +02:00
sharkdp
e42ddda5a6 Clean up exit code handling 2020-04-03 10:48:27 +02:00
sharkdp
4274075f6f Remove outdated license headers (not strictly required by Apache-2.0) 2020-04-03 10:19:13 +02:00
sharkdp
b9d0e72f70 Solve clippy issues 2020-04-03 10:08:47 +02:00
sharkdp
33df48ebe4 Remove claim about unique search results 2020-04-03 10:07:46 +02:00
sharkdp
c9dc617711 Rename --list to --list-details 2020-04-03 09:58:47 +02:00
sharkdp
da5cd12b24 Add -l/--list option
Add a new `-l`/`--list` option to show more details about the search results. This is basically
an alias for `--exec-batch ls -l` with some additional `ls` options.
This can be used in order to:
    * see metadata like permissions, owner, file size, modification times (#491)
    * see symlink targets (#482)
    * achieve a deterministic output order (#324, #196, #159)
    * avoid duplicate search results when multiple search paths are given (#405)
2020-04-03 09:58:47 +02:00
sharkdp
d43827fe57 Add --max-results=<count> option
This new option can be used instead of piping to `head -n <count>` for
improved performance:

| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|:---|---:|---:|---:|---:|
| `fd --max-buffer-time=0 flow.yaml` | 153.9 ± 2.5 | 151.3 | 170.3 | 4.21 ± 5.86 |
| `fd --max-buffer-time=0 flow.yaml \| head -n 1` | 145.3 ± 17.4 | 111.0 | 180.2 | 3.98 ± 5.55 |
| `fd --max-results=1 flow.yaml` | 36.5 ± 50.8 | 7.2 | 145.7 | 1.00 |

Note: there is a large standard deviation on the last result due to the
non-deterministic file system traversal. With `--max-results`, we don't
have to traverse the whole filesystem tree, so it's all about luck.

closes #472
closes #476
2020-04-02 20:27:41 +02:00
sharkdp
44605d55dd Use .to_string() instead of .description() 2020-03-22 15:54:43 +01:00
Dave Parfitt
70448b0006 honor the NO_COLOR env var 2020-03-19 22:56:28 +01:00
sharkdp
d05e7171d4 Fix for older versions of Rust 2020-02-28 20:42:14 +01:00
sharkdp
81dee25438 Add additional check for symlink 2020-02-28 20:42:14 +01:00
sharkdp
bbf0f1cc1f New implementation of broken-symlink handling 2020-02-28 20:42:14 +01:00
sharkdp
bfc8c42444 Revert back to master state 2020-02-28 20:42:14 +01:00
sharkdp
d6034119ae Add comment for broken symlinks 2020-02-28 20:42:14 +01:00
sharkdp
82e6562cfc Further simplify the code 2020-02-28 20:42:14 +01:00
sharkdp
8cea65c1b8 Simplify match statement 2020-02-28 20:42:14 +01:00
Tom Milligan
9d73402ef2 walk: catch ignore NotFound error in the case of a broken symlink 2020-02-28 20:42:14 +01:00
fusillicode
0f2429cabc Add unit tests for merge_exitcodes 2020-02-22 12:32:35 +01:00
fusillicode
232e3937f2 Rename error_if_any_error to merge_exitcodes 2020-02-22 12:32:35 +01:00
fusillicode
e23398e6d0 Extract error_if_any_error as free function 2020-02-22 12:32:35 +01:00
fusillicode
a5fe138a25 Extract ExitCode::is_error helper 2020-02-22 12:32:35 +01:00
fusillicode
b23cfc383f Switch back from Self to ExitCode 2020-02-22 12:32:35 +01:00
fusillicode
e46998278a Fix typo in a job.rs comment 2020-02-22 12:32:35 +01:00
fusillicode
7213f5a88e Add collection of job & thread exit codes + default to ExitCode::Error if any ExitCode::Error 2020-02-22 12:32:35 +01:00
fusillicode
fa7d49282b Restun exit code for generate_and_execute? 2020-02-22 12:32:35 +01:00
sharkdp
2f18903b29 Fix zsh autocompletion problem, closes #487 2020-02-06 21:52:09 +01:00
MarcoIeni
320d7fca0a Sort search results when using -X option 2020-01-02 21:52:26 +01:00
sharkdp
f7d1938556 Formatting 2020-01-01 12:05:50 +01:00
sharkdp
328c6640be Formatting 2020-01-01 12:05:33 +01:00
sharkdp
c001dd47a7 Hide --one-file-system from the short help text 2020-01-01 11:54:01 +01:00
sharkdp
a9c7696ecc Small stylistic change 2020-01-01 11:54:01 +01:00
Simon Engmann
cd2dc5714e Compare --one-file-system to find's -mount/-xdev 2020-01-01 11:54:01 +01:00
Simon Engmann
ed6c184020 Shorten cfg!() checks 2020-01-01 11:54:01 +01:00
Simon Engmann
6f7d10870c Add aliases for --one-file-system
The functionality provided by `--one-file-system` is called
`-mount`/`-xdev` under `find`, so provide those aliases as a compromise.
2020-01-01 11:54:01 +01:00
Simon Engmann
dea1fbe722 Restrict --one-file-system to supported systems
Instead of having the option do nothing at runtime on unsupported
platforms, it is now only available on the systems that support it in
the first place.
2020-01-01 11:54:01 +01:00
Simon Engmann
94993ca6c2 Rename --same-file-system to --one-file-system 2020-01-01 11:54:01 +01:00
Simon Engmann
8796de57b5 Add same file system functionality
This adds a `--same-file-system` CLI option that instructs the walker to
not cross file system boundaries.
Due to the fact that the corresponding option of the `ignore` crate's
`WalkBuilder` does not support platforms other than Unix and Windows,
the option does nothing on platforms other than those.
Resolves #507
2020-01-01 11:54:01 +01:00