2011-11-01 22:14:45 +02:00
|
|
|
# Debian dpkg-source completion -*- shell-script -*-
|
2011-10-12 23:01:10 +03:00
|
|
|
|
|
|
|
_dpkg_source()
|
|
|
|
{
|
|
|
|
local cur prev words cword
|
|
|
|
_init_completion || return
|
|
|
|
|
|
|
|
local options work i action packopts unpackopts fields
|
|
|
|
|
|
|
|
packopts="-c -l -F -V -T -D -U -W -E -sa -i -I -sk -sr -ss -sA -sK -sP \
|
|
|
|
-sU -sR"
|
|
|
|
unpackopts="-sp -sn -su"
|
|
|
|
options="-x -b $packopts $unpackopts"
|
|
|
|
fields="Format Source Version Binary Maintainer Uploader Architecture \
|
|
|
|
Standards-Version Build-Depends Files"
|
|
|
|
|
|
|
|
action="options"
|
|
|
|
for (( i=0; i < ${#words[@]}-1; i++ )); do
|
|
|
|
if [[ ${words[$i]} == "-x" ]]; then
|
|
|
|
action=unpack
|
|
|
|
elif [[ ${words[$i]} == "-b" ]]; then
|
|
|
|
action=pack
|
|
|
|
elif [[ ${words[$i]} == "-h" ]]; then
|
|
|
|
action=help
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
case $action in
|
|
|
|
unpack)
|
|
|
|
case $prev in
|
|
|
|
-x)
|
|
|
|
_filedir -d
|
|
|
|
_filedir 'dsc'
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
COMPREPLY=( $( compgen -W "$unpackopts" -- "$cur" ) )
|
|
|
|
_filedir -d
|
|
|
|
_filedir
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
pack)
|
|
|
|
case $prev in
|
|
|
|
-b)
|
|
|
|
_filedir -d
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-c|-l|-T|-i|-I)
|
|
|
|
# -c: get controlfile
|
|
|
|
# -l: get per-version info from this file
|
|
|
|
# -T: read variables here, not debian/substvars
|
|
|
|
# -i: <regexp> filter out files to ignore diffs of.
|
|
|
|
# -I: filter out files when building tarballs.
|
|
|
|
# return directory names and file names
|
|
|
|
_filedir -d
|
|
|
|
_filedir
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-F)
|
|
|
|
# -F: force change log format
|
|
|
|
COMPREPLY=( $( command ls /usr/lib/dpkg/parsechangelog ) )
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-V|-D)
|
|
|
|
# -V: set a substitution variable
|
|
|
|
# we don't know anything about possible variables or values
|
|
|
|
# so we don't try to suggest any completion.
|
|
|
|
COMPREPLY=()
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
-D)
|
|
|
|
# -D: override or add a .dsc field and value
|
|
|
|
# if $cur doesn't contain a = yet, suggest variable names
|
|
|
|
if [[ "$cur" == *=* ]]; then
|
|
|
|
# $cur contains a "="
|
|
|
|
COMPREPLY=()
|
|
|
|
return 0
|
|
|
|
else
|
|
|
|
COMPREPLY=( $( compgen -W "$fields" -- "$cur" ) )
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
-U)
|
|
|
|
# -U: remove a field
|
|
|
|
# Suggest possible fieldnames
|
|
|
|
COMPREPLY=( $( compgen -W "$fields" -- "$cur" ) )
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
COMPREPLY=( $( compgen -W "$packopts $unpackopts" -- "$cur" ) )
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
COMPREPLY=( $( compgen -W "$options" -- "$cur" ) )
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
} &&
|
|
|
|
complete -F _dpkg_source dpkg-source
|
|
|
|
|
|
|
|
# ex: ts=4 sw=4 et filetype=sh
|