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
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
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
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
4f9a02400a
[ownership] add --owner arg parsing and storage
2020-05-18 21:11:33 +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
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
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
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
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
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
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
4274075f6f
Remove outdated license headers (not strictly required by Apache-2.0)
2020-04-03 10:19:13 +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
328c6640be
Formatting
2020-01-01 12:05:33 +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
Rafał Hajdacki
fb205f5057
Allow changing current working directory of fd
2019-12-23 15:42:33 +01: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
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
Nathan Moreau
588e344d5b
Remove type annotation.
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
24e108e1ad
Add path-separator option.
...
Example usage: `fd.exe --path-separator /` on windows.
2019-09-15 10:57:27 +02:00
sharkdp
a0505bd4df
Expose exit status from --exec-batch <cmd>
...
closes #333
2019-09-13 23:05:35 +02: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
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
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
45d1b15cff
Add support for batch execution of command
2018-11-12 21:11:40 +01:00
sharkdp
81a27fa9bd
Unify error messages, closes #342
2018-10-27 16:30:29 +02:00
Park Juhyung
095bad550f
Print errors when --verbose is set
2018-10-23 21:50:25 +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
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
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
sharkdp
046b0574dc
Rename error => print_error_and_exit and introduce print_error
2018-10-01 22:00:23 +02:00
sharkdp
27caa33729
cargo fmt
2018-09-27 23:01:38 +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
c428f52209
Run cargo fmt
2018-08-03 21:20:48 +02:00
sharkdp
c1ef68662c
Update for new rustfmt
2018-05-14 21:00:00 +02:00
Steve Pentland
2f3b472dfd
Changes from review
2018-04-25 08:14:12 +02:00
Steve Pentland
0207c1371e
Initial impl of size constraints.
...
This adds find-style size constraints with + or - indicating greater
or less than, a numerical size, and a unit
2018-04-25 08:14:12 +02:00
sharkdp
6a9f16e159
Run latest version of rustfmt
2018-04-13 23:13:22 +02:00
sharkdp
37483036e0
Implement --ignore-file
2018-03-26 08:28:22 +02:00
David Peter
8c1b037279
Normalize absolute paths, fixes #268 ( #270 )
...
* Normalize absolute paths, fixes #268
* Split unit tests into several tests
2018-03-25 23:47:58 +02:00
Pramod Bisht
67f6fdf6a7
Code formating
2018-03-25 16:53:12 +02:00
Pramod Bisht
8ce127e443
changed executable=> executable_only
2018-03-25 16:53:12 +02:00
Pramod Bisht
b1e48efc4a
Addresses #246
...
Some implementation to search by filetype `executables`
2018-03-25 16:53:12 +02:00
sharkdp
ffd49c60bd
Error if user supplied path instead of pattern
2018-03-15 07:53:00 +01:00
sharkdp
89a8f5573d
Formatting change
2018-03-15 07:53:00 +01:00
sharkdp
c654159bf2
Update to ansi_term 0.11
2018-03-12 23:19:20 +01:00
sharkdp
40d811c7be
Rewrite of file-type filtering leading to 5% speed-up
2018-02-25 18:17:11 +01:00
sharkdp
b4be1f161c
Add support for .fdignore files
2018-02-21 22:55:26 +01:00
Pramod Bisht
7a3994decb
Changes as per the instruction of cargo fmt -- --write-mode=diff
2018-02-19 21:17:11 +01:00
Pramod Bisht
7e8c2248d0
Fixes : #234
...
Giving suggestion to use `--fixed-strings` in case user passes invalid metacharacters as a regex.
2018-02-19 21:17:11 +01:00