mirror of
https://github.com/bootandy/dust.git
synced 2025-12-05 20:40:11 -08:00
128 lines
7.5 KiB
Plaintext
128 lines
7.5 KiB
Plaintext
#compdef dust
|
||
|
||
autoload -U is-at-least
|
||
|
||
_dust() {
|
||
typeset -A opt_args
|
||
typeset -a _arguments_options
|
||
local ret=1
|
||
|
||
if is-at-least 5.2; then
|
||
_arguments_options=(-s -S -C)
|
||
else
|
||
_arguments_options=(-s -C)
|
||
fi
|
||
|
||
local context curcontext="$curcontext" state line
|
||
_arguments "${_arguments_options[@]}" : \
|
||
'-d+[Depth to show]:DEPTH:_default' \
|
||
'--depth=[Depth to show]:DEPTH:_default' \
|
||
'-T+[Number of threads to use]:THREADS:_default' \
|
||
'--threads=[Number of threads to use]:THREADS:_default' \
|
||
'--config=[Specify a config file to use]:FILE:_files' \
|
||
'-n+[Number of lines of output to show. (Default is terminal_height - 10)]:NUMBER:_default' \
|
||
'--number-of-lines=[Number of lines of output to show. (Default is terminal_height - 10)]:NUMBER:_default' \
|
||
'*-X+[Exclude any file or directory with this path]:PATH:_files' \
|
||
'*--ignore-directory=[Exclude any file or directory with this path]:PATH:_files' \
|
||
'-I+[Exclude any file or directory with a regex matching that listed in this file, the file entries will be added to the ignore regexs provided by --invert_filter]:FILE:_files' \
|
||
'--ignore-all-in-file=[Exclude any file or directory with a regex matching that listed in this file, the file entries will be added to the ignore regexs provided by --invert_filter]:FILE:_files' \
|
||
'-z+[Minimum size file to include in output]:MIN_SIZE:_default' \
|
||
'--min-size=[Minimum size file to include in output]:MIN_SIZE:_default' \
|
||
'(-e --filter -t --file-types)*-v+[Exclude filepaths matching this regex. To ignore png files type\: -v "\\.png\$"]:REGEX:_default' \
|
||
'(-e --filter -t --file-types)*--invert-filter=[Exclude filepaths matching this regex. To ignore png files type\: -v "\\.png\$"]:REGEX:_default' \
|
||
'(-t --file-types)*-e+[Only include filepaths matching this regex. For png files type\: -e "\\.png\$"]:REGEX:_default' \
|
||
'(-t --file-types)*--filter=[Only include filepaths matching this regex. For png files type\: -e "\\.png\$"]:REGEX:_default' \
|
||
'-w+[Specify width of output overriding the auto detection of terminal width]:WIDTH:_default' \
|
||
'--terminal-width=[Specify width of output overriding the auto detection of terminal width]:WIDTH:_default' \
|
||
'-o+[Changes output display size. si will print sizes in powers of 1000. b k m g t kb mb gb tb will print the whole tree in that size]:FORMAT:((si\:"SI prefix (powers of 1000)"
|
||
b\:"byte (B)"
|
||
k\:"kibibyte (KiB)"
|
||
m\:"mebibyte (MiB)"
|
||
g\:"gibibyte (GiB)"
|
||
t\:"tebibyte (TiB)"
|
||
kb\:"kilobyte (kB)"
|
||
mb\:"megabyte (MB)"
|
||
gb\:"gigabyte (GB)"
|
||
tb\:"terabyte (TB)"))' \
|
||
'--output-format=[Changes output display size. si will print sizes in powers of 1000. b k m g t kb mb gb tb will print the whole tree in that size]:FORMAT:((si\:"SI prefix (powers of 1000)"
|
||
b\:"byte (B)"
|
||
k\:"kibibyte (KiB)"
|
||
m\:"mebibyte (MiB)"
|
||
g\:"gibibyte (GiB)"
|
||
t\:"tebibyte (TiB)"
|
||
kb\:"kilobyte (kB)"
|
||
mb\:"megabyte (MB)"
|
||
gb\:"gigabyte (GB)"
|
||
tb\:"terabyte (TB)"))' \
|
||
'-S+[Specify memory to use as stack size - use if you see\: '\''fatal runtime error\: stack overflow'\'' (default low memory=1048576, high memory=1073741824)]:STACK_SIZE:_default' \
|
||
'--stack-size=[Specify memory to use as stack size - use if you see\: '\''fatal runtime error\: stack overflow'\'' (default low memory=1048576, high memory=1073741824)]:STACK_SIZE:_default' \
|
||
'-M+[+/-n matches files modified more/less than n days ago , and n matches files modified exactly n days ago, days are rounded down.That is +n => (−∞, curr−(n+1)), n => \[curr−(n+1), curr−n), and -n => (𝑐𝑢𝑟𝑟−𝑛, +∞)]:MTIME:_default' \
|
||
'--mtime=[+/-n matches files modified more/less than n days ago , and n matches files modified exactly n days ago, days are rounded down.That is +n => (−∞, curr−(n+1)), n => \[curr−(n+1), curr−n), and -n => (𝑐𝑢𝑟𝑟−𝑛, +∞)]:MTIME:_default' \
|
||
'-A+[just like -mtime, but based on file access time]:ATIME:_default' \
|
||
'--atime=[just like -mtime, but based on file access time]:ATIME:_default' \
|
||
'-y+[just like -mtime, but based on file change time]:CTIME:_default' \
|
||
'--ctime=[just like -mtime, but based on file change time]:CTIME:_default' \
|
||
'--files0-from=[run dust on NUL-terminated file names specified in file; if argument is -, then read names from standard input]:FILES0_FROM:_files' \
|
||
'*--collapse=[Keep these directories collapsed]:COLLAPSE:_files' \
|
||
'-m+[Directory '\''size'\'' is max filetime of child files instead of disk size. while a/c/m for last accessed/changed/modified time]:FILETIME:((a\:"last accessed time"
|
||
c\:"last changed time"
|
||
m\:"last modified time"))' \
|
||
'--filetime=[Directory '\''size'\'' is max filetime of child files instead of disk size. while a/c/m for last accessed/changed/modified time]:FILETIME:((a\:"last accessed time"
|
||
c\:"last changed time"
|
||
m\:"last modified time"))' \
|
||
'-p[Subdirectories will not have their path shortened]' \
|
||
'--full-paths[Subdirectories will not have their path shortened]' \
|
||
'-L[dereference sym links - Treat sym links as directories and go into them]' \
|
||
'--dereference-links[dereference sym links - Treat sym links as directories and go into them]' \
|
||
'-x[Only count the files and directories on the same filesystem as the supplied directory]' \
|
||
'--limit-filesystem[Only count the files and directories on the same filesystem as the supplied directory]' \
|
||
'-s[Use file length instead of blocks]' \
|
||
'--apparent-size[Use file length instead of blocks]' \
|
||
'-r[Print tree upside down (biggest highest)]' \
|
||
'--reverse[Print tree upside down (biggest highest)]' \
|
||
'-c[No colors will be printed (Useful for commands like\: watch)]' \
|
||
'--no-colors[No colors will be printed (Useful for commands like\: watch)]' \
|
||
'-C[Force colors print]' \
|
||
'--force-colors[Force colors print]' \
|
||
'-b[No percent bars or percentages will be displayed]' \
|
||
'--no-percent-bars[No percent bars or percentages will be displayed]' \
|
||
'-B[percent bars moved to right side of screen]' \
|
||
'--bars-on-right[percent bars moved to right side of screen]' \
|
||
'-R[For screen readers. Removes bars. Adds new column\: depth level (May want to use -p too for full path)]' \
|
||
'--screen-reader[For screen readers. Removes bars. Adds new column\: depth level (May want to use -p too for full path)]' \
|
||
'--skip-total[No total row will be displayed]' \
|
||
'-f[Directory '\''size'\'' is number of child files instead of disk size]' \
|
||
'--filecount[Directory '\''size'\'' is number of child files instead of disk size]' \
|
||
'-i[Do not display hidden files]' \
|
||
'--ignore-hidden[Do not display hidden files]' \
|
||
'(-d --depth -D --only-dir)-t[show only these file types]' \
|
||
'(-d --depth -D --only-dir)--file-types[show only these file types]' \
|
||
'-P[Disable the progress indication]' \
|
||
'--no-progress[Disable the progress indication]' \
|
||
'--print-errors[Print path with errors]' \
|
||
'(-F --only-file -t --file-types)-D[Only directories will be displayed]' \
|
||
'(-F --only-file -t --file-types)--only-dir[Only directories will be displayed]' \
|
||
'(-D --only-dir)-F[Only files will be displayed. (Finds your largest files)]' \
|
||
'(-D --only-dir)--only-file[Only files will be displayed. (Finds your largest files)]' \
|
||
'-j[Output the directory tree as json to the current directory]' \
|
||
'--output-json[Output the directory tree as json to the current directory]' \
|
||
'-h[Print help (see more with '\''--help'\'')]' \
|
||
'--help[Print help (see more with '\''--help'\'')]' \
|
||
'-V[Print version]' \
|
||
'--version[Print version]' \
|
||
'*::params -- Input files or directories:_files' \
|
||
&& ret=0
|
||
}
|
||
|
||
(( $+functions[_dust_commands] )) ||
|
||
_dust_commands() {
|
||
local commands; commands=()
|
||
_describe -t commands 'dust commands' commands "$@"
|
||
}
|
||
|
||
if [ "$funcstack[1]" = "_dust" ]; then
|
||
_dust "$@"
|
||
else
|
||
compdef _dust dust
|
||
fi
|