Thayne McCombs
9fb0c5d372
Group together output from multi exec commands
...
So that if multiple `--exec` options are given, and the commands are run
in parallel, the buffered output for related commands will be
consecutive.
2022-03-08 10:15:48 +01:00
Thayne McCombs
f27332ee8d
Fix clippy lints
2022-03-08 10:15:48 +01:00
Thayne McCombs
0aee9b0fd9
Support multiple --exec
instances
...
and `--exec-batch`.
Fixes : #406
2022-03-08 10:15:48 +01:00
Thayne McCombs
6e5c8d9c20
Fix some clippy warnings
2022-03-04 08:30:41 +01:00
Thayne McCombs
bbdb8b9d9e
Upgrade to clap 3.1
...
And fix deprecations
2022-03-02 23:32:04 -07:00
Thayne McCombs
43f276e073
Upgrade to clap 3.0
...
This wasn't backwards compatible so required some more substantial
changes.
2022-01-07 23:56:03 -07:00
Tavian Barnes
e7f192f1c6
Revert "Switch from std::sync::mpsc to crossbeam-channel"
...
@sharkdp [noticed][1] a quite severe performance degredation due to this
change. Switch back to std::sync::mpsc until we can fix the performance
regression.
This reverts commit a4bb734482
.
[1]: https://github.com/sharkdp/fd/pull/895#issuecomment-1002099369
2021-12-28 12:11:32 -05:00
Yujia Qiao
e5145ffb98
fix: disable jemalloc on risc-v target
...
`jemallocator` does not support risc-v and fails the compilation.
This fixes build for risc-v.
2021-12-28 17:38:28 +01:00
eatradish
639ed34791
Allow use to disable jemalloc
...
jemalloc will require special flags on devices where page size is not 4K. With default options fd will not work on a Mac Mini M1 where hardware only allow 16K paging size. This commit will allow the user to turn off jemalloc (using --no-default-features) under special circumstances where jemalloc is not usable.
2021-12-28 14:15:45 +01:00
Thayne McCombs
b7e077320d
Fix logic for --no-ignore-parent ( #908 )
...
Make sure that using `--no-ignore-vcs` or `--no-ignore` don't also
enable `--no-ignore-parent`. So that if `--no-ignore-vcs` is enabled, it
continues to respect .fdignore and .ignore in the parent directories.
Fixes : #907
Fixes : #901
2021-12-22 23:38:00 -07:00
Tavian Barnes
81669f4c10
Merge pull request #902 from tavianator/quit-senders
...
Quit senders more aggressively
2021-12-10 13:56:28 -05:00
Thayne McCombs
5ea7cb7a05
A couple of minor recommendations from the Code Quality action ( #903 )
...
use derive for a Default impl, and use a function directly instead of
needlessly wrapping it in a closure
2021-12-07 10:04:17 -07:00
Tavian Barnes
4baefb2f5a
walk: Split wants_to_quit into two separate flags
...
quit_flag is now used to quit the sender threads for any reason, either
due to an interrupt or because the receiver is done.
interrupt_flag is used specifically for ^C interrupts, and causes the
receiver to stop between printing paths, to avoid unfinished escape
sequences when colors are being used.
Fixes #867 .
2021-12-05 12:06:49 -05:00
Tavian Barnes
97a8825b00
output: Remove wants_to_quit handling from print_entry()
...
Since we only check it once per path now, we might as well just check it
before printing anything.
2021-12-05 12:06:49 -05:00
Tavian Barnes
7fe4bfaacb
Merge pull request #895 from tavianator/receiver-buffer
...
walk: Encapsulate the buffering behavior in a struct
2021-12-05 11:56:22 -05:00
Tavian Barnes
a4bb734482
Switch from std::sync::mpsc to crossbeam-channel
...
This lets us avoid https://github.com/rust-lang/rust/issues/39364 , which
could potentially be seen now that we're using recv_timeout().
2021-12-01 10:24:58 -05:00
Alexander Sieg
5fbfdfadb8
fix: disable jemalloc on FreeBSD
...
As jemalloc is the default system allocator on FreeBSD and the
jemalloc-sys crate failes to compile on FreeBSD, this fixes the build on
FreeBSD.
2021-11-28 17:42:15 +01:00
Tavian Barnes
16ae03c3b4
walk: Encapsulate the buffering behavior in a struct
...
The new ReceiverBuffer struct allows us to factor out the receiver
implementation into a number of helper methods. The new implementation
uses rx.{recv,recv_timeout} instead of a for loop, which enables us to
switch to streaming mode at the right time without waiting for more
results.
Fixes #868 .
2021-11-27 12:56:22 -05:00
David Peter
f219da4b3a
Use non-sync channel
2021-11-26 21:23:47 +01:00
Thayne McCombs
e990a13405
squash! Add buffering to stdout when it's not a terminal
...
Co-authored-by: sourlemon207 <jw1756@protonmail.com>
2021-11-26 21:23:47 +01:00
Thayne McCombs
feac240eb5
Add buffering to stdout when it's not a terminal
...
This is based on the work of #736 by @sourlemon207.
I've added the suggestion I recommended on that PR.
2021-11-26 21:23:47 +01:00
David Peter
92bd7850d0
Merge remote-tracking branch 'origin/master' into no-strip/760
2021-11-26 18:19:28 +01:00
David Peter
776f8d0f11
Shorten short help text
2021-11-26 17:58:18 +01:00
David Peter
47421a49b8
Remove strip-prefix placeholders
2021-11-26 17:58:18 +01:00
David Peter
f347379fb0
Adapt help text
2021-11-26 17:48:31 +01:00
David Peter
4d7e34ad59
Rename option to strip_cwd_prefix, rename CLI option
2021-11-26 17:46:04 +01:00
Shun Sakai
0484486f3f
Remove lazy_static
from dependencies
2021-11-25 20:06:43 +01:00
Jacob Mischka
f32060b0de
Change time comparisons to exclusive
...
Closes #794
2021-11-17 23:38:28 +01:00
Tavian Barnes
fe992706ae
Raise SIGINT when dying by ^C
...
Fixes #854 .
2021-11-15 07:53:57 +01:00
Tavian Barnes
2b1bf471b1
Add an exit() method to ExitCode
2021-11-15 07:53:57 +01:00
David Peter
088e42deef
Improve --type help text
...
closes #823
2021-11-14 21:17:57 +01:00
Tavian Barnes
66e3ccc5e1
Don't color each path component separately
...
It can be expensive to color each path component separately, requiring a
stat() call on each component. For deep hierarchies this can result in
quadratic overhead. Instead, just color the path up to the basename as
a directory.
Fixes #720 .
2021-11-14 17:42:16 +01:00
David Peter
21fd013073
Improve --full-path documentation, closes #839
2021-11-14 17:16:44 +01:00
David Peter
cdc6a37ed6
Merge remote-tracking branch 'origin/master' into pr/opposing-options
2021-11-14 16:47:53 +01:00
David Peter
2570fbd04e
Add longer help text for --prune, closes #727
2021-11-14 16:29:10 +01:00
Devon Hollowood
17dd2a6dfe
Implement --batch-size
( #866 )
2021-10-22 00:05:13 -06:00
Jonah Caplan
bf9e6fd36e
add -P option to strip prefix to tty
2021-10-17 00:29:51 -04:00
Jonah Caplan
46db1c4ef3
add {-} format for exec
2021-10-16 23:52:04 -04:00
Jonah Caplan
a41021b0d2
use interactive_terminal
2021-10-16 14:34:58 -04:00
Jonah Caplan
82f04755bf
hopefully fix build error on windows
2021-10-16 14:21:11 -04:00
Jonah Caplan
c42bf4b904
don't strip paths for -X/x, and for tty output
2021-10-16 14:15:37 -04:00
Jonah Caplan
fbc836b553
Revert -X stuff
...
This reverts commit 91860bf682
.
2021-10-16 14:03:23 -04:00
Jonah Caplan
91860bf682
fmt
2021-10-16 00:02:37 -04:00
Jonah Caplan
a4a4709320
rename Option to Config
2021-10-15 23:59:47 -04:00
Jonah Caplan
b6f8bc8ff8
also handle -X and -x with no_strip
2021-10-15 23:57:03 -04:00
Jonah Caplan
2e115df9e7
simplify check in prent_entry
2021-10-15 23:57:03 -04:00
Jonah Caplan
953f586f26
replace -N option with specifying '.' path
2021-10-15 23:57:03 -04:00
Jonah Caplan
6b92c5db90
add -N/--no-strip option to show "./" prefix on relative paths
2021-10-15 23:56:36 -04:00
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