104 lines
3.3 KiB
Plaintext
104 lines
3.3 KiB
Plaintext
|
# bash completion for cpio
|
||
|
|
||
|
have cpio && {
|
||
|
_cpio_format()
|
||
|
{
|
||
|
COMPREPLY=( $( compgen -W 'bin odc newc crc tar ustar hpbin hpodc' -- "$cur" ) )
|
||
|
}
|
||
|
|
||
|
_cpio()
|
||
|
{
|
||
|
local cur prev split=false
|
||
|
|
||
|
COMPREPLY=()
|
||
|
_get_comp_words_by_ref -n : cur prev
|
||
|
|
||
|
_split_longopt && split=true
|
||
|
|
||
|
# --name value style option
|
||
|
case $prev in
|
||
|
-H|--format)
|
||
|
_cpio_format
|
||
|
return 0
|
||
|
;;
|
||
|
-E|-F|-I|--file|--pattern-file)
|
||
|
_filedir
|
||
|
return 0
|
||
|
;;
|
||
|
-R|--owner)
|
||
|
_usergroup
|
||
|
return 0
|
||
|
;;
|
||
|
--rsh-command)
|
||
|
_compopt_o_filenames
|
||
|
COMPREPLY=( $( compgen -c -- "$cur" ) )
|
||
|
return 0
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
$split && return 0
|
||
|
|
||
|
if [ $COMP_CWORD -eq 1 ]; then
|
||
|
COMPREPLY=( $( compgen -W '-o --create -i --extract -p --pass-through \
|
||
|
-? --help --license --usage --version' -- "$cur" ) )
|
||
|
else
|
||
|
case ${COMP_WORDS[1]} in
|
||
|
-o|--create)
|
||
|
if [[ "$cur" == -* ]]; then
|
||
|
COMPREPLY=( $( compgen -W '-0 -a -c -v -A -B\
|
||
|
-L -V -C -H -M -O -F --file --format\
|
||
|
--message --null --reset-access-time\
|
||
|
--verbose --dot --append --block-size\
|
||
|
--dereference --io-size --quiet\
|
||
|
--force-local --rsh-command --help\
|
||
|
--version' -- "$cur" ) )
|
||
|
fi
|
||
|
;;
|
||
|
-i|--extract)
|
||
|
if [[ "$cur" == -* ]]; then
|
||
|
COMPREPLY=( $( compgen -W '-b -c -d -f -m -n -r\
|
||
|
-t -s -u -v -B -S -V -C -E -H -M -R -I\
|
||
|
-F --file --make-directories\
|
||
|
--nonmatching\
|
||
|
--preserve-modification-time\
|
||
|
--numeric-uid-gid --rename -t --list\
|
||
|
--swap-bytes --swap --dot\
|
||
|
--unconditional --verbose --block-size\
|
||
|
--swap-halfwords --io-size\
|
||
|
--pattern-file --format --owner\
|
||
|
--no-preserve-owner --message\
|
||
|
--force-local --no-absolute-filenames\
|
||
|
--sparse --only-verify-crc --quiet\
|
||
|
--rsh-command --help\
|
||
|
--to-stdout \
|
||
|
--version' -- "$cur" ) )
|
||
|
fi
|
||
|
;;
|
||
|
-p|--pass-through)
|
||
|
if [[ "$cur" == -* ]]; then
|
||
|
COMPREPLY=( $( compgen -W '-0 -a -d -l -m -u -v\
|
||
|
-L -V -R --null --reset-access-time\
|
||
|
--make-directories --link --quiet\
|
||
|
--preserve-modification-time\
|
||
|
--unconditional --verbose --dot\
|
||
|
--dereference --owner\
|
||
|
--no-preserve-owner --sparse --help\
|
||
|
--version' -- "$cur" ) )
|
||
|
else
|
||
|
_filedir -d
|
||
|
fi
|
||
|
;;
|
||
|
esac
|
||
|
fi
|
||
|
}
|
||
|
complete -F _cpio cpio
|
||
|
}
|
||
|
|
||
|
# 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
|