Add xz, xzcat, xzdec, and unxz completion.

This commit is contained in:
Ville Skyttä 2009-07-20 19:57:36 +03:00
parent f1f61ace51
commit d3d1a9f895
4 changed files with 102 additions and 0 deletions

View File

@ -94,6 +94,7 @@ bash-completion (1.x)
* Associate .tsv with oocalc.
* Add xmlwf completion.
* Associate *.po with poedit, gtranslator, kbabel, and lokalize.
* Add xz, xzcat, xzdec, and unxz completion.
[ Todd Zullinger ]
* Make yum complete on filenames after install, deplist, update and upgrade

View File

@ -140,6 +140,7 @@ bashcomp_DATA = contrib/ant \
contrib/xmlwf \
contrib/xmms \
contrib/xrandr \
contrib/xz \
contrib/yp-tools \
contrib/yum

View File

@ -107,6 +107,7 @@ complete -f -X '!*.@(Z|gz|tgz|Gz|dz)' gunzip
#complete -f -X '!*.@(Z|gz|tgz|Gz|dz)' zcmp zdiff zcat zegrep zfgrep zgrep zless zmore
complete -f -X '!*.*' zcmp zdiff zcat zegrep zfgrep zgrep zless zmore
complete -f -X '!*.Z' uncompress
complete -f -X '!*.xz' unxz xzcat
complete -f -X '!*.@(gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|MIFF|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX)' ee
complete -f -X '!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|GIF|JPG|JP?(E)G|TIF?(F)|PNG|P[BGP]M|BMP|X[BP]M|RLE|RGB|PCX|FITS|PM)' xv qiv
complete -f -X '!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))' gv ggv kghostview

99
contrib/xz Normal file
View File

@ -0,0 +1,99 @@
# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
# ex: ts=8 sw=8 noet filetype=sh
# 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"
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
} &&
complete -F _xzdec $filenames xzdec