Commit Graph

314 Commits

Author SHA1 Message Date
Shun Sakai 702f0f0fe9 chore(cli): Migrate to Derive API
Change the definition of CLI from the Builder API to the Derive API.
2025-05-16 22:09:27 +01:00
andy.boot 6a14d7e8b3 style: Fix clippy
New clippy has new standards.

Clean up get_metadata by removing unused return
2025-04-20 19:55:36 +01:00
Teemu Pätsi 4e2d93f362 refactor: Fix clippy warnings (#488)
* refactor: Use `repeat_n` instead of `repeat` and `take`

Fixes `clippy::manual_repeat_n`

* refactor: Remove unnecessary let binding
2025-04-20 18:48:11 +01:00
Teemu Pätsi b616378ba0 Fix: miscalculation of NTFS mount file sizes inside WSL (#487)
* fix: Limit file size based on the file system I/O block size

* fix: Take possible file pre-allocation into account

* refactor: Reduce indenting with early return

* refactor: Fix clippy::manual_div_ceil

* fix: Use target_size instead of max_size

* fix: Take possible pre-allocation for a file into account

https://github.com/bootandy/dust/pull/487#issuecomment-2816885444
2025-04-20 08:50:09 +01:00
andy.boot 9a49221ac1 fix: status mesages go to stderr not stdout (#483)
Progress spinner and status line are written to stderr
instead of stdout.

No longer any need to detect if stdout is being redirected.
2025-04-01 23:19:36 +01:00
andy.boot 1b4116e39d fix: all arguments now use '-' instead of '_' (#484)
* cli: unify long arguments (dashes instead of underscores)

* completions: autoregen completions

---------

Co-authored-by: Pavel Kulyov <kulyov.pavel@gmail.com>
2025-04-01 23:18:49 +01:00
Aidan Beggs 733abb2a3f feat: Abort immedietly when ^C is received. (#478)
Previously, we attempted to perform a clean shutdown, which could take a
significant period of time on slow filesystems. This commit changes the
shutdown logic to abort immedietly when ^C is received by the program.
2025-03-30 17:35:28 +01:00
andy.boot dd799706fb deps: cargo update (#474)
* deps: cargo update

* deps: Update edition 2024

and run cargo update
2025-03-11 00:38:38 +00:00
Teemu Pätsi b219981c52 rewrite: Reduce indentation with guard clause 2025-03-10 21:25:13 +00:00
Teemu Pätsi c31468b199 perf: Canonicalize ignored absolute path only once 2025-03-10 21:25:13 +00:00
Teemu Pätsi 28d409ea27 refactor: Extract is_ignored_path function 2025-03-10 21:25:13 +00:00
Teemu Pätsi aa319e3599 perf: Do not canonicalize non-absolute ignored path 2025-03-10 21:25:13 +00:00
Teemu Pätsi c2a4c4573a fix: Ignoring absolute path with -X option 2025-03-10 21:25:13 +00:00
andy.boot 137e366eca feat: Handle duplicate dir names better
If we run `dust /usr/*/Trash`
We see several 'Trash' directories in the output but do not know which
user they belong to.

This fix means if we see duplicate names in a directory we will display
the parent directory name as well
2025-02-20 22:08:06 +00:00
andy.boot 01c0aaeade feat: New --collapse flag
--collapse will keep that directory collapsed and will not expand it.
2025-01-27 22:00:08 +00:00
andy.boot 6cbd736e11 fix: Bars in --skip-total flag
Before we calculated the % by taking the longest bar. If you use
--skip-total the longest bar is not the total. We need to sum up all the
children of root to work out what the largest size is.
2025-01-26 11:22:37 +00:00
andy.boot 8e087e09da fix: Handle Interrupted Error
Rust may throw Interrupted errors while scanning filesystem. These may
be retried:
https://doc.rust-lang.org/std/io/enum.ErrorKind.html#variant.Interrupted
2025-01-26 11:22:04 +00:00
andy.boot 9ba0b6d1d0 feat: Support -o flag for JSON output
requested in: https://github.com/bootandy/dust/issues/450
2025-01-17 20:48:56 +00:00
andy.boot 775d841840 style: clippy 2025-01-15 21:37:29 +00:00
n4n5 609fc1e760 clippy 2025-01-15 19:14:00 +00:00
n4n5 eeb686562d push config option 2025-01-15 19:14:00 +00:00
n4n5 2e56a261e0 clippy 2025-01-15 19:08:18 +00:00
n4n5 bfe7323b20 fix typo Operator 2025-01-15 19:08:18 +00:00
janbridley 1372815007 Format src/display.rs 2024-11-08 22:50:03 +00:00
janbridley 7c9e2f1833 Enable pretty format for petabyte data 2024-11-08 22:50:03 +00:00
Yukai Chou 86b2bd944c refactor: simplify get_height_of_terminal() and get_width... 2024-09-16 22:01:10 +01:00
NoisyCoil 489d9ada44 fix: 64-bit atomics for platforms with no 64-bit atomics
Closes: #423
2024-08-09 19:28:20 +01:00
wugeer f48fcc790a feat: support Dust tree by age 2024-08-07 19:31:22 +01:00
wugeer 733117d0f6 fix: retrieve metadata for symbolic links without following them
Previously, the function get_metadata in platform.rs used `fs::metadata` which follows symbolic links
and returns metadata for the target file. This caused issues #421: du / dust disagreement
when trying to determine properties of the symbolic link itself
2024-07-31 00:16:59 +01:00
andy.boot 1ab0b2f531 refactor: rename variable 2024-07-17 19:35:44 +01:00
andy.boot c09073151d fix: perf issues with v1.1.0
Bring performance back
2024-07-17 19:16:46 +01:00
andy.boot 08b9c756ee fix: total_ordering of sort_by_inode
Before sort_by_inode could result in unstable ordering. This change
ensures we will always have a reliable total ordering
2024-06-30 21:57:58 +01:00
n4n5 394231683d feat: Add flag to read from file/stdin (#405)
* from standard

* improve

* happy clippy

* explicit arg option

* fix problem
2024-06-27 23:51:47 +01:00
Jan Chren ~rindeal 3ed95ee399 streamline func APIs processing target_dirs 2024-06-27 21:47:18 +01:00
Jan Chren ~rindeal 58c9f6d509 Fix -x option behavior
This PR addresses an issue where `target_dirs` were being optimized out\
before being passed to the `get_filesystem_devices()` function.
The changes in this PR ensure that `target_dirs` are passed directly
to `get_filesystem_devices()`, and only then are they simplified.

Example of a command that currently doesn't work correctly:
```sh
dust -x $(findmnt -S tmpfs -o target -n)
```

It should show the usage of all tmpfs mounts, but it currently shows
just the the root mountpoints like `/run`, since all the mountpoints
nested under it are optimized out.
2024-06-27 21:47:18 +01:00
wugeer 3f2f7a8bb2 Formatting 2024-06-27 21:11:11 +01:00
wugeer d65f41097e feat: Added the ability to filter the corresponding files based on the access time, modify time, and change time of the file for statistics 2024-06-24 23:35:25 +01:00
n4n5 08e4240b41 add cli 2024-06-19 21:48:55 +01:00
n4n5 028ca1fdc7 eprint problematic folders 2024-06-19 21:48:55 +01:00
andy.boot 4f6255971b refactor: cleanup -j / --output-json flag
Stop -j writing to a file, print to stdout instead.
2024-06-19 21:39:09 +01:00
andy.boot cab250aa0e tests: Fix test broken in prev commit 2024-06-18 23:43:58 +01:00
wugeer 5f76db27c9 fix: issue 386 --only-file displays full paths even without --full-paths 2024-06-18 23:25:31 +01:00
binlingyu 1ffda38264 Explicit lifecycle that can be omitted 2024-06-17 21:50:24 +01:00
andy.boot e78690e4f5 chore: Cleanup threads commit 2024-05-06 20:26:02 +01:00
andy.boot 5b87260467 feat: Adding threads flag
Thanks: Dj-Codeman
2024-05-06 20:26:02 +01:00
Fukushima Shogo 2c34c38b29 Formatting 2024-05-02 23:03:41 +01:00
Fukushima Shogo a1574d6a06 Formatting 2024-05-02 23:03:41 +01:00
Fukushima Shogo 184ea1f956 Added json output function 2024-05-02 23:03:41 +01:00
andy.boot a3dcab9454 fix: si detection - single digits are binary 2024-05-01 20:42:04 +01:00
andy.boot 658b11d0f8 fix: bug: Si detection was backwards.
kB - means kilobyte 10**3
KiB - means kibibyte 1024 / 2**10

https://en.wikipedia.org/wiki/Byte#Multiple-byte_units
2024-05-01 20:42:04 +01:00