# # bash completion support for PackageKit's console commands. # # Copyright (C) 2007 James Bowes # Copyright (C) 2010 Richard Hughes # # 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 __pkcon_commandlist=" accept-eula backend-details get-roles depends-on get-details get-distro-upgrades get-files get-filters get-groups get-packages download required-by get-time get-transactions get-update-detail get-updates get-categories install install-local list-create offline-get-prepared offline-status offline-trigger refresh remove repo-disable repo-enable repo-list repo-set-data resolve search quit update upgrade-system repair " __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 () { 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 --filter --verbose --help --nowait " ;; -*) __pkconcomp " -v -n -h -? --version --verbose --help --filter --nowait " ;; *) __pkconcomp "$__pkcon_commandlist" ;; esac return fi case "$command" in search) _pkcon_search ;; *) COMPREPLY=() ;; esac } complete -o default -o nospace -F _pkcon pkcon