# xz(1) completion -*- shell-script -*- proc _xz { local cur prev words cword split _init_completion -s || return local xspec="*.@(xz|lzma|txz|tlz)" match $prev { with --decompress|--list|--test|-!(-*)[dlt]* setglobal xspec = ""!"$xspec" with --files|--files0 _filedir return 0 with -C|--check setglobal COMPREPLY = ''( $( compgen -W 'crc32 crc64 sha256 none' -- "$cur" ) ) return 0 with -F|--format setglobal COMPREPLY = ''( $( compgen -W 'auto xz lzma raw' -- "$cur" ) ) return 0 with -T|--threads setglobal COMPREPLY = ''( $( compgen -W "{0..$(_ncpus)}" -- "$cur" ) ) return 0 with -M|--memlimit|--memlimit-compress|--memlimit-decompress|--memory|\ -S|--suffix|--delta|--lzma1|--lzma2 # argument required but no completions available return 0 with -h|--help|-H|--long-help|-V|--version|--info-memory # all other arguments are noop with these return 0 } $split && return 0 _expand || return 0 if [[ "$cur" == -* ]] { setglobal COMPREPLY = ''( $( compgen -W '$( _parse_help "$1" --long-help ) {-1..-9}' \ -- "$cur" ) ) [[ $COMPREPLY == *= ]] && compopt -o nospace return 0 } local IFS=$'\n' compopt -o filenames setglobal COMPREPLY = ''( $( compgen -f -X "$xspec" -- "$cur" ) \ $( compgen -d -- "$cur" ) ) } && complete -F _xz xz pxz # ex: ts=4 sw=4 et filetype=sh