Commit Graph

311 Commits

Author SHA1 Message Date
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
Taro Tanaka
e2fe656296 Redo 'Fix zsh completion' with clap
Because I'm not familiar with Rust, when I was working on
https://github.com/bootandy/dust/pull/390 I didn't realize that the
completions were auto-generated via clap. I'm sorry. This redoes it
with clap.

This improves not only the completions but also the --help and the
man page. Also the --output-format flag will raise an error if the
given value is invalid.
2024-05-01 20:19:58 +01:00
Taro Tanaka
87581f328e Allow options to be set in any position
Currently options following regular arguments are not interpreted as
options. This fixes that.

Users can still treat values starting with a hyphen (`-`) as regular
arguments by using `--`, e.g.:

    dust -d 2 -r ~/Documents -F -- --this-is-my-dir
2024-05-01 20:16:37 +01:00
andy.boot
69c4c63357 fix: windows clippy 2024-03-25 22:01:08 +00:00