Linux lhjmq-records 5.15.0-118-generic #128-Ubuntu SMP Fri Jul 5 09:28:59 UTC 2024 x86_64
Your IP : 18.117.232.108
# bash completion for lintian(1) and lintian-info(1) -*- shell-script -*-
_lintian_tags()
{
local match search tags
tags=$(awk '/^Tag/ { print $2 }' /usr/share/lintian/checks/*.desc)
if [[ $cur == *, ]]; then
search=${cur//,/ }
for item in $search; do
match=$(command grep -nE "^Tag: $item$" \
/usr/share/lintian/checks/*.desc | cut -d: -f1)
tags=$(command sed -e "s/\<$item\>//g" <<<$tags)
done
COMPREPLY+=($(compgen -W "$tags"))
elif [[ $cur == *,* ]]; then
COMPREPLY+=($(compgen -P "${cur%,*}," -W "$tags" -- "${cur##*,}"))
else
COMPREPLY+=($(compgen -W "$tags" -- "$cur"))
fi
}
_lintian_checks()
{
local match search todisable checks
checks=$(awk '/^(Check-Script|Abbrev)/ { print $2 }' \
/usr/share/lintian/checks/*.desc)
if [[ $cur == *, ]]; then
search=${cur//,/ }
for item in $search; do
match=$(command grep -nE "^(Check-Script|Abbrev): $item$" \
/usr/share/lintian/checks/*.desc | cut -d: -f1)
todisable=$(awk '/^(Check-Script|Abbrev)/ { print $2 }' $match)
for name in $todisable; do
checks=$(command sed -e "s/\<$name\>//g" <<<$checks)
done
done
COMPREPLY+=($(compgen -W "$checks"))
elif [[ $cur == *,* ]]; then
COMPREPLY+=($(compgen -P "${cur%,*}," -W "$checks" -- "${cur##*,}"))
else
COMPREPLY+=($(compgen -W "$checks" -- "$cur"))
fi
}
_lintian_infos()
{
local match search infos
infos=$(awk '/^Collector/ { print $2 }' \
/usr/share/lintian/collection/*.desc)
if [[ $cur == *, ]]; then
search=${cur//,/ }
for item in $search; do
match=$(command grep -nE "^Collector: $item$" \
/usr/share/lintian/collection/*.desc | cut -d: -f1)
infos=$(command sed -e "s/\<$item\>//g" <<<$infos)
done
COMPREPLY+=($(compgen -W "$infos"))
elif [[ $cur == *,* ]]; then
COMPREPLY+=($(compgen -P "${cur%,*}," -W "$infos" -- "${cur##*,}"))
else
COMPREPLY+=($(compgen -W "$infos" -- "$cur"))
fi
}
_lintian()
{
local cur prev words cword
_init_completion || return
local lint_actions general_opts behaviour_opts configuration_opts
lint_actions="--setup-lab --remove-lab --check --check-part --tags
--tags-from-file --ftp-master-rejects --dont-check-part --unpack
--remove"
general_opts="--help --version --print-version --verbose --debug --quiet"
behaviour_opts="--info --display-info --display-experimental --pedantic
--display-level --suppress-tags --suppress-tags-from-file --no-override
--show-overrides --color --unpack-info --md5sums --checksums
--allow-root --fail-on-warnings --keep-lab"
configuration_opts="--cfg --lab --archivedir --dist --area --section --arch
--root"
if [[ $prev == -* ]]; then
case $prev in
-C | --check-part | -X | --dont-check-part)
_lintian_checks
;;
-T | --tags | --suppress-tags)
_lintian_tags
;;
--tags-from-file | --suppress-tags-from-file | --cfg | -p | \
--packages-file)
_filedir
;;
--lab | --archivedir | --dist | --root)
_filedir -d
;;
--color)
COMPREPLY=($(compgen -W "never always auto html" -- "$cur"))
;;
-U | --unpack-info)
_lintian_infos
;;
--area | --section)
COMPREPLY=($(compgen -W "main contrib non-free" -- "$cur"))
;;
--arch) ;;
esac
fi
case "$cur" in
--*)
COMPREPLY=($(compgen -W "$lint_actions $general_opts
$behaviour_opts $configuration_opts" -- "$cur"))
;;
*,)
# If we're here, the user is trying to complete on
# --action tag,tag,<TAB>
# Only few actions permit that, re-complete them now.
case "$prev" in
-C | --check-part | -X | --dont-check-part)
_lintian_checks
;;
-T | --tags | --suppress-tags)
_lintian_tags
;;
-U | --unpack-info)
_lintian_infos
;;
esac
;;
*)
# in Ubuntu, dbgsym packages end in .ddeb, lintian >= 2.57.0 groks
_filedir '@(?(u|d)deb|changes|dsc|buildinfo)'
;;
esac
return 0
} &&
complete -F _lintian lintian
_lintian_info()
{
local cur prev words cword
_init_completion || return
case "$prev" in
--help | --profile)
return
;;
-t | --tags)
_lintian_tags
return
;;
--include-dir)
_filedir -d
return
;;
esac
case "$cur" in
--*)
COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
;;
*)
_filedir
;;
esac
return 0
} &&
complete -F _lintian_info lintian-info
# ex: filetype=sh
|