Add bash completion script for pkcon.
This commit is contained in:
parent
e93bc3e84e
commit
9b35c113ee
148
contrib/pk-completion.bash
Executable file
148
contrib/pk-completion.bash
Executable file
@ -0,0 +1,148 @@
|
||||
#
|
||||
# bash completion support for PackageKit's console commands.
|
||||
#
|
||||
# Copyright (C) 2007 James Bowes <jbowes@dangerouslyinc.com>
|
||||
#
|
||||
# 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 ~/.git-completion.sh
|
||||
|
||||
|
||||
__pkcon_commandlist="
|
||||
search
|
||||
install
|
||||
remove
|
||||
update
|
||||
refresh
|
||||
resolve
|
||||
force-refresh
|
||||
update-system
|
||||
get
|
||||
enable-repo
|
||||
disable-repo
|
||||
"
|
||||
|
||||
__pkconcomp ()
|
||||
{
|
||||
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
|
||||
}
|
||||
|
||||
_pkcon_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
|
||||
__pkconcomp "name details group file"
|
||||
fi
|
||||
return
|
||||
}
|
||||
|
||||
_pkcon_get ()
|
||||
{
|
||||
local i c=1 command
|
||||
while [ $c -lt $COMP_CWORD ]; do
|
||||
i="${COMP_WORDS[c]}"
|
||||
case "$i" in
|
||||
updates|depends|requires|description|updatedetail|actions|groups|filters|transactions|repos)
|
||||
command="$i"
|
||||
break
|
||||
;;
|
||||
esac
|
||||
c=$((++c))
|
||||
done
|
||||
|
||||
if [ $c -eq $COMP_CWORD -a -z "$command" ]; then
|
||||
__pkconcomp "
|
||||
updates
|
||||
depends
|
||||
requires
|
||||
description
|
||||
updatedetail
|
||||
actions
|
||||
groups
|
||||
filters
|
||||
transactions
|
||||
repos
|
||||
"
|
||||
fi
|
||||
return
|
||||
}
|
||||
|
||||
_pkcon ()
|
||||
{
|
||||
local i c=1 command
|
||||
|
||||
while [ $c -lt $COMP_CWORD ]; do
|
||||
i="${COMP_WORDS[c]}"
|
||||
case "$i" in
|
||||
--version|--help|--verbose|--nowait|-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=() ;;
|
||||
--*) __pkconcomp "
|
||||
--version
|
||||
--verbose
|
||||
--help
|
||||
--nowait
|
||||
"
|
||||
;;
|
||||
-*) __pkconcomp "
|
||||
-v
|
||||
-n
|
||||
-h
|
||||
-?
|
||||
--version
|
||||
--verbose
|
||||
--help
|
||||
--nowait
|
||||
"
|
||||
;;
|
||||
*) __pkconcomp "$__pkcon_commandlist" ;;
|
||||
esac
|
||||
return
|
||||
fi
|
||||
|
||||
case "$command" in
|
||||
search) _pkcon_search ;;
|
||||
get) _pkcon_get ;;
|
||||
*) COMPREPLY=() ;;
|
||||
esac
|
||||
}
|
||||
|
||||
complete -o default -o nospace -F _pkcon pkcon
|
Loading…
Reference in New Issue
Block a user