File: pkgcli

package info (click to toggle)
packagekit 1.3.4-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 14,824 kB
  • sloc: ansic: 56,491; cpp: 15,652; xml: 5,532; python: 4,932; sh: 316; perl: 60; makefile: 56
file content (137 lines) | stat: -rw-r--r-- 2,617 bytes parent folder | download
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