Commit Graph

104 Commits

Author SHA1 Message Date
andy.boot a7b82f32d7 fix: update use of sysinfo.system
System is now much quicker to start but requires an explicit call
to refresh memory else it deafults to 0 (oops)
2023-01-04 20:08:20 +00:00
Guillaume Gomez 72b811c278 Update sysinfo version to 0.26.7 2023-01-04 19:38:40 +00:00
DIRE 2ca7177446 FEATURE: support only directories will be displayed. Flag -D 2022-10-05 23:26:10 +01:00
Collin Styles e858f9e976 Read inputs from stdin when applicable 2022-10-01 11:16:14 +01:00
andy.boot c363e5ff8b Fix: Only create large stack size if enough memory
Small boxes do not have enough memory to create a large stack

Conversely we want a large stack size for large boxes with a very highly
nested directory structure.

Version: New version
2022-08-31 21:14:56 +01:00
andy.boot d6f9bb3c47 Feature: Add min-size parameter
Add often requested feature. '--min-size 50000' will only include files
above a size of 50kB
2022-08-23 11:47:18 +01:00
andy.boot b9b2aee760 Cleanup: Clean previous commit.
Dislike the idea of passing a string into build_cli. By removing
a call to default_value we can side-step the problem.

Downside is we lose the error log if a user provides a bad depth
2022-08-23 09:12:07 +01:00
Jedsek f60184ecbb Fix the hard code of max depth 2022-08-23 09:11:13 +01:00
Jedsek 81d52e6e3a Support for completions 2022-08-23 09:11:13 +01:00
andy.boot 5980858b39 Feature: Config file
Read flags for several params from config file.

This was a popular requested feature (many people want to run with -r on
by default).
2022-08-22 12:05:04 +01:00
andy.boot 4cef6aaa84 Refactor: init_color function
Refactor function so windows & linux are forced to have same signature
instead of 2 different functions
2022-08-20 11:09:56 +01:00
andy.boot dc5b7b2c2e Comment: Update comment text 2022-08-20 11:09:56 +01:00
andy.boot fc548919c5 Refactor: Move filter by file type to new file 2022-08-20 11:09:56 +01:00
andy.boot 2a9d545c3c Style: Remove ColorState enum, revert init_color
Booleans are simpler and easier to work with.

Revert init_color to its earlier state as it is easier to understand
2022-08-20 11:09:56 +01:00
Nathan West 5fcc45efbe Use correct error code type 2022-08-20 10:50:46 +01:00
Nathan West c36ca33fe9 Lots of code cleanup
- Try to use iterator adapters and collect in various places, where possible. This especially benefits draw_it.
- Try to use `.map` and other similar methods on Options and Results, where possible
- Replaced nearly all clones with reference-based equivalents
- Summarizing nodes by file extension is now much more efficient
- PartialOrd and PartialEq implementations now agree
- Replace #[cfg(...)] function definitions with simpler if cfg!(...) equivelents
- Simplify CLI Values handling by taking advantage of Values::default
- Various spelling corrections in comments
- Add `ColorState` enum to replace bool, for clarity
- Fix tests that break under some detected terminal widths when paths are long
- Use sort_by instead of (sort, reverse)
- Use new `ExtensionNode` struct internally to simplify extension aggregation code
2022-08-20 10:50:46 +01:00
andy.boot 812e1e3c53 Feature: Add skip-total flag
Flag to not include the last line containing totals of the output tree
2022-08-18 15:22:10 +01:00
andy.boot b9386cd39e Fix: Increase Stack size
Low stack size could result in a stack overflow exception if traversing
very highly nested directories.

This makes core-dumps less likely but will not completely remove the
risk

example for creating directories:
mkdir -p $(for i in {1..5000}; do echo -n "qwe/"; done)

original issue:
https://github.com/bootandy/dust/issues/197
2022-08-15 14:05:24 +01:00
andy.boot a00d1f0719 Fix: Allow -n to be used with -d
Allow -n for number_of_lines to be used with -d 'max depth'

Remove depth specific functions, the job is now handled by the mainline

Add depth as a field onto the Node object.
2022-07-13 09:38:21 +01:00
andy.boot 52aeeebe1f Improve help text 2022-02-26 11:47:06 +00:00
andy.boot 9f4a5daee6 Update library: Clap
Required several changes to main.rs as v3 had breaking changes.
2022-02-26 11:10:26 +00:00
andy.boot 20d89bef91 Neaten code 2022-02-26 09:58:47 +00:00
andy.boot 109a0b90d4 Update help text: number_of_lines
Remove note about 'height' and '-h being help' because it confused
people.

Add text to explain default height is terminal height - 10
https://github.com/bootandy/dust/issues/201
2022-01-02 22:41:02 +00:00
andy.boot ab67c1a50e Update help text: Add note for -c about watch
Issue was raised about using dust with watch. The solution is to use
watch --color dust or watch dust -c

https://github.com/bootandy/dust/issues/205
2022-01-02 22:41:02 +00:00
Gustavobb f708305190 Feature: Implement ISO output 2021-11-20 12:13:30 +00:00
andy.boot d983175189 Cleanup: Vec -> &[]. Remove println. 2021-10-24 14:05:14 +01:00
andy.boot fa4405b58b Cleanup: Remove unused comment
This was fixed a few commits ago
2021-10-24 14:05:14 +01:00
andy.boot 9f91d446c1 Feature/Bugfix: Allow multiple regexs to be used
The -e and -v flags allow multiple values. Before values after the first
were ignored. This change allows the user to specify multiple regexs and
have them all applied.
2021-10-24 14:05:14 +01:00
andy.boot 1cb731533b bugfix: Allow dust to work on low width terminal
Do not assume the min width is 80 (unless on windows).
2021-09-19 11:40:21 +01:00
andy.boot d6c2482150 Clap: use default_value on input
This avoids uses one less 'match' statement
2021-09-19 11:12:23 +01:00
andy.boot 9d2e6d2b36 Feature: Filter by invert_filter: reverse match
Mimic grep's -v option.

Allows dust to only match files that do not match the given filter
2021-09-19 11:12:23 +01:00
andy.boot 124c19b5c9 Feature: Adding file types filter & F flag changed
-t = Show summary of types

-e = Filter by regex
	allows you to specify a file type like -e "\.txt$"

Change behaviour of '-f' flag - it now counts only files. Before it
counted files & directories. This was needed for compatibility with
the new '-e' filter flag
2021-09-19 11:12:23 +01:00
andy.boot ed3902f07e Rename file: dirwalker -> dir_walker
Felt like this file was missing an '_'
2021-07-16 14:13:12 +01:00
andy.boot f219a752d6 Refactor: Compress arguemnts to one object
Several arguments were passed around the dirwalker file. Compress them
into a single struct.
2021-07-16 14:13:12 +01:00
andy.boot f6e36aba52 Feature: Re-introduce -x flag to limit filesystem
-x flag allows dust to limit itself to the current filesystem
2021-07-16 14:13:12 +01:00
andy.boot 8e0188c755 README: Update usage examples of dust 2021-07-07 18:35:05 +01:00
andy.boot 00c7ce8f15 Large refactor. Use rayon, 10X performance boost
Code changes:
Removed ignore & channel crates. Using a single reciever thread to build
a hashmap to prevend duplicate inodes being reported gave a severe
performance penalty

Using rayon crate with some hand crafted file traversal has improved
performance aprox 10X

Behaviour changes:

Removed parameter 'limit by filesystem' - don't think this is used, and
I only added it as it was easy to add with the ignore crate.

Sym links will now not appear in the output tree unless using '-s'
'apparent-size' flag

Change behaviour of multiple args so that it unifies them and
compares them under one tree instead of treating them
individually: https://github.com/bootandy/dust/issues/136
2021-06-22 12:20:48 +01:00
andy.boot e1ffc92589 Merge branch 'master' into master 2021-06-08 10:24:31 +01:00
andy.boot 18729762ad Fix style for new version of clippy 2021-06-08 10:20:23 +01:00
QuarticCat 551c5d3bfa Simplify conflict implementation 2021-06-05 21:09:31 +08:00
andy.boot e15cf0c42e [core] New flag: width
Add support for width flag
https://github.com/bootandy/dust/issues/126

Requested because some people may cat the output

All terminal height/width detection is now in the main file. One method
now has too many args for clippy, this complaint is valid and in the
future we should consider pulling these out into a separate object.
2021-01-16 15:42:39 +00:00
Alexandru Macovei a48c7782ac Print correct message when paths are not found 2021-01-16 14:56:14 +00:00
andy.boot e0347b0b43 Fix: Stop adding extra output lines for multi args
If we provided n names we would previous output screen_height + n lines.
This is wrong. We should only print screen_height lines
2020-11-25 13:46:48 +00:00
Ryan Winograd 53af0d486d Change behavior of depth flag
Change the depth flag so that it only changes the depth of displayed
subdirectories, not the depth of the directory size calculation (i.e.,
changing --depth does not change the displayed directory size, rather it
only changes how many levels of subdirectories are shown).
2020-09-03 21:47:52 +01:00
andy.boot 873456eb97 Add Hide hidden flag
From feature request to respect the .gitignore file. Decided to bundle in
respect for hidden files into the same feature [otherwise if you obey
the .gitignore file you still endup showing the .git directory]
2020-09-03 00:04:27 +01:00
andy.boot 4ea8d9339e Support listing directories by number of files
Based of https://github.com/bootandy/dust/pull/104

Idea is to allow users to find the number of files in each directory
instead of size.
2020-08-30 10:39:03 +01:00
andy.boot 34be81c216 Windows: If no color flag is already set
... then do not print a warning message
https://github.com/bootandy/dust/issues/87
2020-06-02 13:45:12 +01:00
andy.boot 402a8f8249 Remove thread parameter
Code to limit number of threads removed. ignore crate seems quite good
at using CPUs correctly
2020-03-28 15:59:07 +00:00
andy.boot 1953e107c2 Move everything to ignore instead of jwalk 2020-03-22 23:58:07 +00:00
Neel Chotai 795d91237d update args descriptions 2020-03-01 00:51:36 +00:00