79 lines
2.9 KiB
Bash
79 lines
2.9 KiB
Bash
# bash completion for cpio -*- shell-script -*-
|
|
|
|
_cpio()
|
|
{
|
|
local cur prev words cword split
|
|
_init_completion -s -n : || return
|
|
|
|
# --name value style option
|
|
case $prev in
|
|
-H|--format)
|
|
COMPREPLY=( $( compgen -W \
|
|
'bin odc newc crc tar ustar hpbin hpodc' -- "$cur" ) )
|
|
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 [[ $cword -eq 1 ]]; then
|
|
COMPREPLY=( $( compgen -W '-o --create -i --extract -p --pass-through
|
|
-? --help --license --usage --version' -- "$cur" ) )
|
|
else
|
|
case ${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 --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
|
|
|
|
# ex: ts=4 sw=4 et filetype=sh
|