Tavian Barnes
7b5b3ec47b
walk: Add a cache for DirEntry metadata
2021-10-13 09:13:44 +02:00
Niklas Mohrin
02e9850112
Refactor: Rename Options
to Config
2021-10-12 18:49:07 +02:00
Niklas Mohrin
b8c575cc8f
Refactor: extract some methods out of run
and reorder main.rs
...
Now, the top method is `main`, then comes `run`, then the methods used
in `run` follow. Generally, a method is always declared somewhere after
its first use. This way, you can read the file from top to bottom with
a decreasing level of abstraction (you start with very high-level
processes like setting the current dir and logic for which ls command to
use only comes furher down).
2021-10-12 18:49:07 +02:00
Niklas Mohrin
3de948ae0d
Refactor: use some nice Rust methods in buffering code
2021-10-12 18:49:07 +02:00
Niklas Mohrin
45a86459b2
Refactor: merge_exit_codes
now takes an impl IntoIterator<Item = ExitCode>
...
This way, callers don't need to collect into a slice / vec.
2021-10-12 18:49:07 +02:00
Thayne McCombs
00eb6461cb
Remove an unnecessary reference. ( #864 )
...
This was caught by Code Quality github action with the message:
> this expression borrows a reference (`&walk::DirEntry`) that is immediately dereferenced by the compiler
2021-10-12 00:46:15 -06:00
exploide
c3f786db43
added missing help messages to various options
...
despite they have hidden_short_help set to true, a short help message is still useful for auto-generated completions
2021-10-03 17:06:09 +02:00
Tavian Barnes
476d404938
Merge pull request #817 from will459/add_no_ignore_parent
...
Add --no-ignore-parent flag
2021-09-01 13:22:01 -04:00
Vukašin Stepanović
c749c95136
Merge branch 'master' into pr/opposing-options
2021-08-23 15:55:17 +02:00
Vukašin Stepanović
3ebd78cf02
Use overrides_with to clean up opposing arg logic
2021-08-23 15:44:11 +02:00
Vukašin Stepanović
8da936abd8
Merge branch 'pr/opposing-options' of https://github.com/Asha20/fd into pr/opposing-options
2021-08-23 15:28:45 +02:00
Vukašin Stepanović
668af05dca
Add opposing options to manpage
2021-08-23 15:27:52 +02:00
Asha20
334488cab7
Add -q/--quiet/--has-match flag ( #813 )
...
Instead of printing to stdout, the program will return 1 as the exit
code if there are no matches and 0 otherwise.
2021-08-14 17:57:01 +02:00
a1346054
5b4869a940
fix spelling
2021-08-14 16:21:02 +02:00
Thayne McCombs
8984e57dd6
Merge branch 'master' into pr/opposing-options
2021-08-11 01:44:51 -06:00
Thayne McCombs
e4730603d0
Address feedback for removing buffering when running on a single thread
2021-08-11 09:38:55 +02:00
Max Triano
154cd6e329
Clarifying comments
2021-08-11 09:38:55 +02:00
Max Triano
394e967b5f
No buffering cmd output when running on 1 thread
2021-08-11 09:38:55 +02:00
Max Triano
0f0fa76c81
Just trying some things out, initial functionality
2021-08-11 09:38:55 +02:00
Klim Tsoutsman
6a18b36037
Support --list-details on more platforms
...
Implement `--list-details` by using short options for `ls` to support more platforms (like BusyBox)
closes #783
2021-08-10 20:39:10 +02:00
Thayne McCombs
115ae93df9
Refactor file types check to be on impl of FileTypes
...
Relates to #382
2021-08-10 20:30:23 +02:00
Vukašin Stepanović
37852aa388
Add 5 opposing CLI options
...
Those are:
- `--no-hidden`, which overrides `--hidden`
- `--ignore`, which overrides `--no-ignore`
- `--ignore-vcs`, which overrides `--no-ignore-vcs`
- `--no-follow`, which overrides `--follow`
- `--relative-path`, which overrides `--absolute-path`
2021-08-09 15:49:48 +02:00
Jacob Mischka
ba60a163fe
Use local times for time functions
...
This patch uses Chrono for explicit date or datetime parsing, only using
humantime for its relative time parsing. The following formats are accepted:
1. Full RFC3339 parsing, requiring an explicit timezone
2. `YY-MM-DD`, defaulting to time `00:00:00` for the given date in the
local time zone
3. `YY-MM-DD HH:MM:SS` in the local time zone
Fixes #631 , #794
2021-08-09 13:40:55 +02:00
himself65
4e04d13215
Fix return out of match pattern
2021-08-09 13:36:09 +02:00
William Correia
f8ae334ca9
Add --no-ignore-parent flag
...
- Flag toggles parent checking in the `ignore` crate. This should
affect both git and non-git ignore files.
- Updated Changelog.
2021-08-08 17:38:24 -04:00
David Peter
b5344dac30
Improve -x/-X help text and man page description
...
closes #605
2021-08-08 22:58:13 +02:00
David Peter
aeff525c30
Attempt to fix #365
2021-08-08 15:02:01 +02:00
David Peter
2d398dc4a7
Fix directory-existence check on Windows
...
This fixes a bug on Windows where `fd` could not be used on ram disks
and encrypted folders.
closes #752
2021-08-08 15:02:01 +02:00
David Peter
b507449146
Handle IO errors based on type, closes #737
2021-08-08 13:10:16 +02:00
David Peter
d9697d1486
Make the path-separator check Windows-only
2021-08-08 13:03:31 +02:00
David Peter
515e0ee469
Do not use .clone()
2021-08-08 13:03:31 +02:00
David Peter
a0ca460901
Adjust error message
2021-08-08 13:03:31 +02:00
Kaleb Olson
693325bcf2
Adds path separator checking and hint for automatic /
expansion for some windows shells, eg., msys
2021-08-08 13:03:31 +02:00
David Peter
708efaa812
Literal separators
2021-07-27 09:05:23 +02:00
David Peter
a7a4499d1d
Fix unneeded references
2021-07-27 09:05:23 +02:00
David Peter
2a2126c40a
Fix clippy warnings
2021-07-27 09:05:23 +02:00
Andrew Mitchell
cb385a4822
Issue 624 newer older help text ( #733 )
...
* Document the newer and older aliases in the help text
* Documentation for new older aliases, remove commas
* Adds better clarification on alias usage for newer and older
* Fixes inconsistencies in help text for newer and older aliases
2021-02-25 07:39:44 +01:00
Allen Wild
1a3615df9c
set default path separator to '/' in MSYS
...
MSYS and MSYS2 environments (such as Git Bash) have a UNIX like
filesystem which uses '/' as the path separator rather than '\', but
Rust doesn't know about this by default.
On Windows, check the MSYSTEM environment variable and set the default
value of the --path-separator option to '/' for convenience.
There is no similar detection of Cygwin because there seems to be no way
for Rust (and any native Win32) programs to detect that they're being
called from a Cygwin environment. Cygwin users can use a shell
alias/function/script to wrap fd.
Fixes: https://github.com/sharkdp/fd/issues/537
2021-02-15 20:08:59 +01:00
David Peter
cf7dd43f80
Hide --print0 from the short help text
2021-02-14 20:02:37 +01:00
Allen Wild
8a532e5196
use custom --path-separator in arguments to --exec
...
When --path-separator is used, pass it on to commands run with
--exec(-batch) and --list-details.
On Windows, paths with drive letters (C:\foo) and UNC paths
(\\server\share\path) are handled as expected, though they're unlikely
to be found in normal usage of fd.
Fixes: https://github.com/sharkdp/fd/issues/697
2021-02-14 10:24:41 +01:00
johnwdjiang
b8089f8d58
hide private func
2021-02-13 21:55:38 +01:00
David Peter
85fb7389af
Shorter help text for --exec
2021-02-13 21:25:50 +01:00
Archer Stéphane
eb28030f87
include similar change to src/app.rs after feeback
2021-02-13 21:24:15 +01:00
sharkdp
cadaef3f07
Show error if pattern matches leading dot but --hidden is not given, closes #615
2020-12-06 15:57:33 +01:00
sharkdp
17bd256ae6
Improve --fixed-strings help text, closes #627
2020-12-06 14:57:47 +01:00
sharkdp
ecfd8cea41
Update --help text regarding pattern, closes #684
2020-12-06 12:31:31 +01:00
sharkdp
d2659de782
Improve --extension help text, closes #673
2020-12-06 12:20:50 +01:00
sharkdp
d205a7ff9e
Improve --exclude help text, closes #661
2020-12-06 12:15:01 +01:00
sharkdp
296300ce46
Fix clippy suggestions
2020-12-06 12:04:47 +01:00
sharkdp
ea48a96945
Run cargo fmt
2020-12-06 12:02:22 +01:00
xanonid
441a235a0f
Simplify code a bit (suggestions by clippy)
2020-12-06 11:52:10 +01:00
xanonid
2cd3de8b94
Use NO_COLOR env variable check also for help screen
2020-12-06 11:52:10 +01:00
Marco Sirabella
6830b3dee9
Better defaults for LsColors
2020-12-06 11:48:19 +01:00
Platon Pronko
e97a1e90cb
Add exact size support to the --size filter ( #669 )
2020-12-06 11:47:27 +01:00
sharkdp
b2fa188029
Avoid panic when sending errors after receiver shutdown
...
fixes #678
2020-10-28 13:10:25 +01:00
David Peter
e0adb45d08
Fail with error message if numeric arguments can not be parsed
...
closes #675
2020-10-25 21:18:53 +01:00
Matthias Reitinger
ec4cc981fc
Add --prune flag
...
closes #535
2020-10-25 08:16:01 +01:00
Amrit Rathie
fd1ddc9d08
Change dependency dirs to dirs-next
2020-10-24 15:25:07 +02:00
Allen Wild
99934ab98c
add --base-directory, --path-separator, and --search-path to the man page
...
These options are in `fd --help` but missing from the man page.
Also fix a typo in the help text for --base-directory.
2020-10-14 08:35:09 +02:00
Fredrik Fornwall
a851570b15
Disable jemalloc on Android ( fixes #636 and #642 )
...
Disabling jemalloc for Android fixes a build failure since jemalloc does
not build out of the box for that platform on older API versions.
Android started using jemalloc as the system allocator around 2014 for
most devices. In the latest Android version (11) the system allocator
has been switched to Scudo, which while not being jemalloc is modern and
actively maintained and should be used for most software on Android.
See:
- https://android-developers.googleblog.com/2020/06/system-hardening-in-android-11.html
- https://blog.nsogroup.com/a-tale-of-two-mallocs-on-android-libc-allocators-part-2-jemalloc/
- https://stackoverflow.com/questions/2266762/android-libc-version-and-malloc-implementation
2020-10-08 12:45:48 +02:00
gorogoroumaru
74c3431a2b
improve time option usage ( #645 )
...
* improve time option usage
2020-09-10 00:34:27 -06:00
sharkdp
a81fef9992
Windows: Check for xterm-256color environment variable as a proxy for color support
2020-05-25 12:17:32 +02:00
sharkdp
53c338d71f
Windows: Always enable colors if --color=always is set
2020-05-25 12:17:32 +02:00
sharkdp
1d1eefdb7b
Disable jemalloc on macOS
...
This is a workaround for #498 . See issue for details.
closes #498
2020-05-19 17:55:21 +02:00
sharkdp
ddee6aa8f3
Revert "Always enable colors on Windows, closes #469 "
...
This reverts commit a4e78519c4
.
2020-05-19 17:09:27 +02:00
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
sharkdp
0f27485faf
Quit immediately if the channel::send call failed
2020-01-01 11:21:52 +01:00
sharkdp
762f551ff4
Update --help text
2019-12-23 16:07:38 +01:00
Rafał Hajdacki
fb205f5057
Allow changing current working directory of fd
2019-12-23 15:42:33 +01:00
EasiestSoft
32fdbb1eae
Fixed typos, occurence to occurrence, seach to search
2019-12-19 21:52:43 +01:00
Deepansh
a6ed0fc5ef
Fix CI error
...
Fixes sharkdp/fd#496
2019-10-09 23:09:21 +02:00
Deepansh Sood
266499800b
Fix idempotent flags
...
Add 'overrides_with' to format flags.
Resolves sharkdp/fd#488
2019-10-09 23:09:21 +02:00
sharkdp
d48aeda6b2
Apply clippy suggestions
2019-09-23 20:23:11 +02:00
Nathan Henrie
59c27baf0f
Expand help for -u
, add to manpage
2019-09-17 22:21:37 +02:00
Nathan Henrie
33f385692d
Add -u
alias to long --help only
...
Fixed sharkdp/fd#92 , specifically https://github.com/sharkdp/fd/issues/92#issuecomment-522756754
2019-09-17 22:21:37 +02:00
sharkdp
9350c8544d
Clean up cfg line
2019-09-15 18:58:05 +02:00
sharkdp
1ab4e87dda
Disable jemalloc for musl builds
2019-09-15 18:58:05 +02:00
sharkdp
4e20803e7d
Disable jemallocator on Windows
2019-09-15 18:58:05 +02:00
sharkdp
5a154866e3
Use jemalloc
...
Benchmark #1 : ./fd-sys-alloc '[0-9]\.jpg$' /home/shark
Time (mean ± σ): 246.8 ms ± 3.4 ms [User: 960.1 ms, System: 810.0 ms]
Range (min … max): 244.1 ms … 257.1 ms 12 runs
Benchmark #2 : ./fd-jemalloc '[0-9]\.jpg$' /home/shark
Time (mean ± σ): 201.0 ms ± 3.0 ms [User: 833.9 ms, System: 666.9 ms]
Range (min … max): 196.1 ms … 206.9 ms 14 runs
Summary
'./fd-jemalloc '[0-9]\.jpg$' /home/shark' ran
1.23 ± 0.03 times faster than './fd-sys-alloc '[0-9]\.jpg$' /home/shark'
2019-09-15 18:58:05 +02:00
sharkdp
08fcd7ce59
Make --changed-within/before work for directories
...
closes #470
2019-09-15 17:03:23 +02:00
sharkdp
eac20a8132
Add --regex option to override --glob
2019-09-15 16:47:38 +02:00
sharkdp
d5da615c17
Implement glob-based searches
...
closes #284
2019-09-15 16:47:38 +02:00
sharkdp
641594c2c6
Use regex::bytes::* instead of regex::*
2019-09-15 16:47:38 +02:00
sharkdp
2545aaabd2
Exit immediately when Ctrl-C has been pressed twice
2019-09-15 13:06:03 +02:00
sharkdp
f14b854bc1
Use existing Cow pointer
2019-09-15 10:57:27 +02:00
sharkdp
8f86a06c1a
Extend help text
2019-09-15 10:57:27 +02:00
Nathan Moreau
588e344d5b
Remove type annotation.
2019-09-15 10:57:27 +02:00
Nathan Moreau
e3af9b0307
Factor into a helper function; adapt to print_entry_uncolorized.
2019-09-15 10:57:27 +02:00
Nathan Moreau
29bf9d731d
Handle any string replacement.
2019-09-15 10:57:27 +02:00
Nathan Moreau
3857fa8f62
Amend clap configuration for path-separator.
2019-09-15 10:57:27 +02:00
Nathan Moreau
24e108e1ad
Add path-separator option.
...
Example usage: `fd.exe --path-separator /` on windows.
2019-09-15 10:57:27 +02:00
sharkdp
1d16cd855e
Fix warnings
2019-09-15 10:48:29 +02:00
sharkdp
a0505bd4df
Expose exit status from --exec-batch <cmd>
...
closes #333
2019-09-13 23:05:35 +02:00
Tavian Barnes
5cbd8405ec
Check the pattern before anything else, since it doesn't require metadata
...
This should partially address #432 by decreasing the number of stat() calls:
$ strace -c -f ./fd-before '\.h$' /usr -j1 -S +1k >/dev/null
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
15.71 8.831948 7 1192279 46059 stat
$ strace -c -f ./fd-after '\.h$' /usr -j1 -S +1k >/dev/null
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
7.92 1.972474 10 183907 46046 stat
Though it's not as few as possible:
$ strace -c -f find /usr -iname '*.h' -size +1k >/dev/null
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
19.01 0.946500 5 161649 newfstatat
$ strace -c -f bfs /usr -iname '*.h' -size +1k >/dev/null
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
13.73 0.406565 5 69005 statx
Performance is much better when metadata is required:
$ hyperfine ./fd-{before,after}" '\.h$' /usr -j1 -S +1k"
Benchmark #1 : ./fd-before '\.h$' /usr -j1 -S +1k
Time (mean ± σ): 4.623 s ± 0.154 s [User: 1.465 s, System: 3.354 s]
Range (min … max): 4.327 s … 4.815 s 10 runs
Benchmark #2 : ./fd-after '\.h$' /usr -j1 -S +1k
Time (mean ± σ): 2.650 s ± 0.058 s [User: 1.258 s, System: 1.592 s]
Range (min … max): 2.568 s … 2.723 s 10 runs
Summary
'./fd-after '\.h$' /usr -j1 -S +1k' ran
1.74 ± 0.07 times faster than './fd-before '\.h$' /usr -j1 -S +1k'
While remaining the same when it's not:
$ hyperfine ./fd-{before,after}" '\.h$' /usr -j1"
Benchmark #1 : ./fd-before '\.h$' /usr -j1
Time (mean ± σ): 2.382 s ± 0.038 s [User: 1.221 s, System: 1.286 s]
Range (min … max): 2.325 s … 2.433 s 10 runs
Benchmark #2 : ./fd-after '\.h$' /usr -j1
Time (mean ± σ): 2.362 s ± 0.034 s [User: 1.193 s, System: 1.294 s]
Range (min … max): 2.307 s … 2.422 s 10 runs
Summary
'./fd-after '\.h$' /usr -j1' ran
1.01 ± 0.02 times faster than './fd-before '\.h$' /usr -j1'
2019-05-08 07:28:47 -05:00
Tim Holland
074cfad3d4
Remove deprecated trim_left(_matches)?
...
warning: use of deprecated item 'core::str::<impl str>::trim_left_matches': superseded by `trim_start_matches`
--> src/main.rs:222:28
|
222 | .map(|e| e.trim_left_matches('.'))
| ^^^^^^^^^^^^^^^^^
|
= note: #[warn(deprecated)] on by default
2019-03-02 08:15:12 +01:00
Alexandru Macovei
c2b46f247f
avoid cloning command, in the wake of 9d26b74
2019-01-30 20:42:43 +01:00
Alexandru Macovei
fe53af064b
fix most clippy lints
2019-01-26 16:15:48 +01:00
Alexandru Macovei
6aa87f3423
save one indent level in error handling for add_ignore
2019-01-26 16:15:48 +01:00
Alexandru Macovei
74e593c43c
inline value used only once
2019-01-26 16:15:48 +01:00
Alexandru Macovei
df4227c614
Uniform names for config and wants_to_quit. Pass Arc's by ref.
2019-01-26 16:15:48 +01:00
Alexandru Macovei
5ade72a5e1
split spawn_receiver(..) and spawn_senders(..) from scan(..).
...
This is just a split commit, refraining from renaming too much.
The drop(tx) call is no longer necessary, as the first sender
is dropped at the end of spawn_senders(..)
2019-01-26 16:15:48 +01:00
Alexandru Macovei
d8bd5f9d51
macronize repetitive tests in exec/input
2019-01-26 16:15:48 +01:00
sharkdp
8cfdcf43f6
Lock stdout only once
2019-01-09 08:20:20 +01:00
sharkdp
8c197d2866
Update to new lscolors version
2019-01-08 21:28:43 +01:00
Alexandru Macovei
051ff5987a
[2018 edition] remove all extern crate lines from sources
2019-01-07 12:52:30 +01:00
Alexandru Macovei
64e6ea9fe9
[2018 edition] run cargo fix edition and edition-idioms
2019-01-07 12:52:30 +01:00
sharkdp
33feb511f0
Formatting
2019-01-01 17:40:53 +01:00
sharkdp
985fab16bb
Add note about short and long help text, closes #286
2019-01-01 17:40:30 +01:00
sharkdp
a17a3fe5ef
Add comment about hidden files/directories, see #377
2019-01-01 16:31:06 +01:00
sharkdp
4b5efa3438
Use lscolors crate
...
Use my new [lscolors](https://github.com/sharkdp/lscolors ) crate instead
of the internal `lscolors` module
- Speeds up `LS_COLORS` querying, leading to a nice 25% performance
improvement when
- Adds support for 24-bit colors and background colors
closes #368
closes #363
2018-12-14 23:20:18 +01:00
kimsnj
6b40a075cd
exec-batch: fix a panic with -X "echo {}" and pass stdio to child cmd
2018-11-12 21:11:40 +01:00
kimsnj
45d1b15cff
Add support for batch execution of command
2018-11-12 21:11:40 +01:00
kimsnj
32ec7afc3a
Add test with multiple tokens in an argument
2018-11-10 10:29:35 +01:00
teresy
34b8c0df73
refactor: use shorthand fields
2018-11-08 11:48:12 +01:00
sharkdp
f064ee5509
Properly use .ignore files, see #156
2018-10-27 18:11:50 +02:00
sharkdp
daf5191aac
Add note about .ignore files
2018-10-27 16:44:34 +02:00
sharkdp
81a27fa9bd
Unify error messages, closes #342
2018-10-27 16:30:29 +02:00
sharkdp
6ff58abb6c
Re-enable .ignore files, closes #156
2018-10-27 15:42:02 +02:00
sharkdp
974802e817
Hide a few options from short '-h' text
2018-10-27 15:38:26 +02:00
sharkdp
deea31cbbc
Add aliases, change help text
2018-10-27 15:34:10 +02:00
Josh Leeb-du Toit
caad43fe6c
Use oss_vec fn in internal/mod.rs tests
2018-10-24 16:31:16 +02:00
Park Juhyung
095bad550f
Print errors when --verbose is set
2018-10-23 21:50:25 +02:00
Park Juhyung
f7a96bd980
Fix typo at max-buffer-time's help message
...
"tothe" -> "to the"
2018-10-23 07:03:21 +02:00
Casey Primozic
cdf737bf5c
Add search-path
option
...
* Multiple `--search-path` arguments can be supplied which replace the positional `path` argument for providing directories which will be searched.
* When a `--search-path` argument is provided, positional `path` arguments will not be allowed
2018-10-22 19:26:36 +02:00
yobrave
e2bb932f87
Doc: add chinese readme link ( #347 )
2018-10-19 22:05:15 +02:00
Josh Leeb-du Toit
8543ca645d
Split internals.rs into module and multiple files
...
This PR splits `internals.rs` into the `internal` module with multiple
files, and moves `FdOptions` into `opts.rs`.
The main motivation behind this is to move logic for constructing
`FdOptions` out of the main function and more readable and easier to
understand in the `opts` module. The goal will eventually to be able
to write `FdOptions::from(matches)` and have the options constructed.
2018-10-12 19:14:19 +02:00
Josh Leeb-du Toit
984f04f142
Add print_error macros to replace functions
...
This patch replaces the `print_error` and `print_error_and_exit`
functions with equivalent macros.
2018-10-12 07:31:21 +02:00
Karim SENHAJI
abe8aa55c0
clean-up first implementation of modification date filter
2018-10-10 19:52:37 +02:00
Karim SENHAJI
54c117d72f
Add support for --changed-before and --changed-with for modification time based search
2018-10-10 19:52:37 +02:00
Josh Leeb-du Toit
8691ab4bed
Minor changes to improve readability
...
This patch makes minor changes to make the code a little easier to
understand. For example, using the `?` operator in some fns that return
an `Option` type.
2018-10-04 09:44:09 +02:00
Josh Leeb-du Toit
cb1cfa108b
ErrorCode enum variants to be more descriptive
2018-10-03 16:06:18 +02:00
Josh Leeb-du Toit
8bdd8f8e8f
Move exit code consts into enum
...
Previously, the constants defined in `src/exit_codes` weren't being
used, and the constants for exit codes were being redefined in the
`internals` module.
This PR removes the exit code consts and instead uses an enum defined in
`src/exit_codes`. This centralizes the definitions of exit codes making
them easier to modify and keep track of.
2018-10-03 16:06:18 +02:00
psinghal20
f9c4e8d399
refactor: loosen strict handling of missing --ignore-file
2018-10-03 13:11:51 +02:00
Josh Leeb-du Toit
adc467b2b2
Add exec tests and cfg(test) compiler guards
...
Some tests throughout the codebase were just functions marked with the
`#[test]` macro. It is convention to have these test functions in a
`test` module with a compiler guard `cfg(test)`. This PR updates the
tests that aren't already setup like this to be in the `test` module.
Additionally, this PR also adds tests to the `exec` module to check the
remaining `Token` enum variations.
2018-10-03 13:04:22 +02:00
sharkdp
56b6389dac
--exec: Do not exit on errors
2018-10-01 22:00:23 +02:00
sharkdp
046b0574dc
Rename error => print_error_and_exit and introduce print_error
2018-10-01 22:00:23 +02:00
psinghal20
6407dc4eb4
chore: format code via rustfmt
2018-10-01 22:00:23 +02:00
psinghal20
2ebef2d46f
feat: enable display of error messages
2018-10-01 22:00:23 +02:00
sharkdp
27caa33729
cargo fmt
2018-09-27 23:01:38 +02:00
sharkdp
8fb25f15c9
Just reference --max-depth in --maxdepth help
2018-09-13 22:33:18 +02:00
Mahmoud Al-Qudsi
d375b5e1f5
Add --maxdepth
as hidden alias for --max-depth
...
For muscle memory compatibility with `rg`. This variant will not show in
the help or in the program options, and is only checked if `--maxdepth`
is not specified.
2018-09-13 22:33:18 +02:00
sharkdp
aa70c5a446
Add --type empty
...
Add a new `empty`/`e` type to search for empty files and/or directories.
To search for both empty files and directories, use one of the
following:
fd --type empty
fd -te
fd --type empty --type file --type directory
To search for empty files, use
fd --type empty --type file
fd -te -tf
To search for empty directories, use
fd --type empty --type directory
fd -te -td
closes #273
2018-08-19 17:05:04 +02:00
sharkdp
50a2bab5cd
Use short-circuiting for --type
searches
...
Reverses the order of boolean checks for `--type` searches,
making them about 10% to 50% faster(!).
2018-08-19 16:27:23 +02:00
sharkdp
641976cf7a
Remove duplicated lstat
syscall
...
Removes a unnecessary `lstat` syscall by calling `.metadata()` only
once. This makes `--type executable` searches about 15% faster.
2018-08-19 16:23:06 +02:00
sharkdp
c428f52209
Run cargo fmt
2018-08-03 21:20:48 +02:00
Alexandru Macovei
4dee8b7940
fix build for rust 1.20.0
2018-07-02 19:55:03 +02:00
Alexandru Macovei
9a45947234
simplify SizeFilter as enum with value instead of struct
...
Also move the touched cfg(test) code into cfg(test) module and trim test names
2018-07-02 19:55:03 +02:00
sharkdp
c1ef68662c
Update for new rustfmt
2018-05-14 21:00:00 +02:00
sharkdp
4172ed03f0
Do not include non-files when using --size
2018-04-25 23:08:05 +02:00
Steve Pentland
0bbc7f5219
Update regex and match, update comments
2018-04-25 08:14:12 +02:00
Steve Pentland
ace3f512d3
Make compatible with min rust version
2018-04-25 08:14:12 +02:00