# xz(1) completion have xz && _xz() { COMPREPLY=() local cur=`_get_cword` local prev=${COMP_WORDS[COMP_CWORD-1]} if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-z --compress -d --decompress \ -t --test -l --list -k --keep -f --force -c --stdout \ -S --suffix --files --files0 -F --format -C --check \ -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -M --memory --lzma1 \ --lzma2 --x86 --powerpc --ia64 --arm --armthumb \ --sparc --delta -q --quiet -v --verbose -h --help \ -H --long-help -V --version' -- "$cur" ) ) return 0 fi local split=false _split_longopt && split=true local xspec="*.@(xz|lzma)" case "$prev" in -@(!(-*)[dlt]*|-decompress|-list|-test)) xspec="!"$xspec ;; --files|--files0) _filedir return 0 ;; -C|--check) COMPREPLY=( $( compgen -W 'crc32 crc64 sha256' -- "$cur" ) ) return 0 ;; -F|--format) COMPREPLY=( $( compgen -W 'auto xz lzma raw' -- "$cur" ) ) return 0 ;; -M|--memory|-S|--suffix|--delta|--lzma1|--lzma2) # argument required but no completions available return 0 ;; -h|--help|-H|--long-help|-V|--version) # all other arguments are noop with these return 0 ;; esac $split && return 0 _expand || return 0 local IFS=$'\t\n' COMPREPLY=( $( compgen -f -X "$xspec" -- "$cur" ) \ $( compgen -d -- "$cur" ) ) } && complete -F _xz $filenames xz # xzdec(1) completion # have xzdec && _xzdec() { COMPREPLY=() local cur=`_get_cword` local prev=${COMP_WORDS[COMP_CWORD-1]} if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-M --memory -h --help -V --version' \ -- "$cur" ) ) return 0 fi local split=false _split_longopt && split=true case "$prev" in -M|--memory) # argument required but no completions available return 0 ;; -h|--help|-V|--version) # all other arguments are noop with these return 0 ;; esac $split && return 0 _filedir xz # no lzma support here as of xz 4.999.8beta } && complete -F _xzdec $filenames xzdec # Local variables: # mode: shell-script # sh-basic-offset: 4 # sh-indent-comment: t # indent-tabs-mode: nil # End: # ex: ts=4 sw=4 et filetype=sh