1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
#
# bash completion support for PackageKit's console commands.
#
# Copyright (C) 2007 James Bowes <jbowes@dangerouslyinc.com>
# Copyright (C) 2010 Richard Hughes <richard@hughsie.com>
# Copyright (C) 2025 Matthias Klumpp <matthias@tenstral.net>
#
# Licensed under the GNU General Public License Version 2
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# To use the completion:
# 1. Copy this file somewhere (e.g. ~/.pk-completion.sh).
# 2. Add the following line to your .bashrc:
# source ~/.pk-completion.sh
__pkgcli_commandlist="
backend
history
search
list
show
list-depends
list-required-by
what-provides
files
list-updates
show-update
resolve
organization
show-os-upgrade
last-time
refresh
install
remove
update
upgrade
download
offline-update
install-sig
repair
quit
repo-list
repo-enable
repo-disable
repo-remove
monitor
"
__pkgclicomp ()
{
local all c s=$'\n' IFS=' '$'\t'$'\n'
local cur="${COMP_WORDS[COMP_CWORD]}"
if [ $# -gt 2 ]; then
cur="$3"
fi
for c in $1; do
case "$c$4" in
*.) all="$all$c$4$s" ;;
*) all="$all$c$4 $s" ;;
esac
done
IFS=$s
COMPREPLY=($(compgen -P "$2" -W "$all" -- "$cur"))
return
}
_pkgcli_search ()
{
local i c=1 command
while [ $c -lt $COMP_CWORD ]; do
i="${COMP_WORDS[c]}"
case "$i" in
name|details|group|file)
command="$i"
break
;;
esac
c=$((++c))
done
if [ $c -eq $COMP_CWORD -a -z "$command" ]; then
__pkgclicomp "name details group file"
fi
return
}
_pkgcli ()
{
local i c=1 command
while [ $c -lt $COMP_CWORD ]; do
i="${COMP_WORDS[c]}"
case "$i" in
--version|--help|--verbose|-v|-n|-h|-?) ;;
*) command="$i"; break ;;
esac
c=$((++c))
done
if [ $c -eq $COMP_CWORD -a -z "$command" ]; then
case "${COMP_WORDS[COMP_CWORD]}" in
--*=*) COMPREPLY=() ;;
--*) __pkgclicomp "
--version
--filter
--verbose
--help
"
;;
-*) __pkgclicomp "
-v
-n
-h
-?
--version
--verbose
--help
--filter
"
;;
*) __pkgclicomp "$__pkgcli_commandlist" ;;
esac
return
fi
case "$command" in
search) _pkgcli_search ;;
*) COMPREPLY=() ;;
esac
}
complete -o default -o nospace -F _pkgcli pkgcli
|