about summary refs log tree commit diff
path: root/Completion/Debian/Command/_wajig
blob: 861c909e5374a89051ffe5f8b40202484fb770b1 (plain) (blame)
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
#compdef wajig

# $Id: _wajig,v 1.1 2005/01/09 06:23:58 clint Exp $

# quarl 2005-01-08 initial version

# local curcontext="$curcontext" state line cmds ret=1

_wajig_commands=(
    'addcdrom:add a CD-ROM to the list of available sources of packages'
    'autoalts:mark the alternative to be auto set (using set priorities)'
    'autoclean:remove superseded deb files from the download cache'
    'autodownload:do an update followed by a download of all updated packages'
    'autoinstall:perform an install without asking questions (non-interactive)'
    'available:list versions of packages available for installation'
    'bug:check reported bugs in package using the Debian Bug Tacker'
    'build:retrieve/unpack sources and build .deb for the named packages'
    'builddepend:retrieve packages required to build listed packages'
    'changelog:retrieve latest changelog for the package'
    'clean:remove all deb files from the download cache'
    'commands:list all the JIG commands and one line descriptions for each'
    'dailyupgrade:perform an update then a dist-upgrade'
    'dependents:list of packages which depend/recommend/suggest the package'
    'describe:one line description of packages (-v and -vv for more detail)'
    'describenew:one line description of new packages'
    'detail:provide a detailed description of package (describe -vv)'
    'detailnew:provide a detailed description of new packages (describe -vv)'
    'distupgrade:upgrade to new distribution (installed and new rqd packages)'
    'docs:equivalent to help with -verbose=2'
    'download:download package files ready for an install'
    'filedownload:download packages listed in file ready for an install'
    'fileinstall:install packages listed in a file'
    'fileremove:remove packages listed in a file'
    'findfile:search for a file within installed packages'
    'findpkg:search for an unofficial Debian package at apt-get.org'
    'fixconfigure:perform dpkg --configure -a (to fix interrupted configure)'
    'fixinstall:perform apt-get -f install (to fix broken dependencies)'
    'fixmissing:perform apt-get --fix-missing upgrade'
    'force:install packages and ignore file overwrites and depends'
    'help:print documentation (detail depends on --verbose)'
    'hold:place listed packages on hold so they are not upgraded'
    'init:initialise or reset the JIG archive files'
    'install:install (or upgrade) one or more packages or .deb files'
    'installr:install package and associated recommended packages'
    'installrs:install package and recommended and suggested packages'
    'installs:install package and associated suggested packages'
    'install/dist:install packages from specified distribution'
    'integrity:check the integrity of installed packages (through checksums)'
    'large:list size of all large (>10MB) installed packages'
    'lastupdate:identify when an update was last performed'
    'list:list the status and description of installed packages'
    'listall:list a one line description of every known package'
    'listalts:list the objects that can have alternatives configured'
    'listcache:list the contents of the download cache'
    'listcommands:list all the JIG commands and one line descriptions for each'
    'listdaemons:list the daemons that JIG can start/stop/restart'
    'listfiles:list the files that are supplied by the named package'
    'listhold:list those packages on hold'
    'listinstalled:List packages (with optional argument substring) installed'
    'listnames:list all known packages or those containing supplied string'
    'listorphans:list libraries not required by any installed package'
    'liststatus:same as list but only prints first two columns, not truncated'
    'listwide:same as list but avoids truncating package names'
    'localdist-upgrade:dist-upgrade using packages already downloaded'
    'localupgrade:upgrade using packages already downloaded, but not any others'
    'move:move packages in the download cache to a local Debian mirror'
    'new:list packages that became available since last update'
    'news:obtain the latest news about the package'
    'newupgrades:list packages newly available for upgrading'
    'nonfree:list installed packages that do not meet the DFSG'
    'orphans:list libraries not required by any installed package'
    'package:generate a .deb file for an installed package'
    'policy:from preferences file show priorities/policy (available)'
    'purge:remove one or more packages and configuration files'
    'purgedepend:purge package and those it depend on and not required by others'
    'purgeorphans:purge orphaned libraries (not required by installed packages)'
    "readme:display the package's README file from /usr/share/doc"
    'recdownload:download package and any it depends on'
    'recommended:install package and associated recommended packages'
    'reconfigure:reconfigure the named installed packages or run gkdebconf'
    'reinstall:reinstall each of the named packages'
    'reload:reload daemon configs, e.g., gdm, apache (see list-daemons)'
    'remove:remove one or more packages (see also purge)'
    'removedepend:remove package and its dependees not required by others'
    'removeorphans Remove orphaned libraries (not required by installed packages)'
    'repackage:generate a .deb file for an installed package'
    'reset:initialise or reset the JIG archive files'
    'restart:stop then start a daemon, e.g., gdm, apache (see list-daemons)'
    'rpm2deb:convert a RedHat .rpm file to a Debian .deb file'
    'rpminstall:install a RedHat .rpm package'
    'rpmtodeb:convert a RedHat .rpm file to a Debian .deb file'
    'search:search for packages containing listed words'
    'searchapt:find local Debian archives suitable for sources.list'
    'setup:configure the sources.list file which locates Debian archives'
    'show:provide a detailed description of package [same as detail]'
    'showdistupgrade:trace the steps that a dist-upgrade would perform'
    'showinstall:trace the steps that an install would perform'
    'showremove:trace the steps that a remove would perform'
    'showupgrade:trace the steps that an upgrade would perform'
    'sizes:print out the size (in K) of all, or listed, installed packages'
    'snapshot:generates list of package=version for all installed packages'
    'source:retrieve and unpack sources for the named packages'
    'start:start a daemon, e.g., gdm, apache (see list-daemons)'
    'status:show the version and available version of packages'
    'statusmatch:show the version and available version of matching packages'
    'statussearch:show the version and available version of matching packages'
    'stop:stop a daemon, e.g., gdm, apache (see list-daemons)'
    'suggested:install package and associated suggested packages'
    'tasksel:run the Gnome task selector to install groups of packages'
    'toupgrade:list packages with newer versions available for upgrading'
    'unhold:remove listed packages from hold so they are again upgraded'
    'unofficial:search for an unofficial Debian package at apt-get.org'
    'update:update the list of down-loadable packages'
    'updatealts:update default alternative for things like x-window-manager'
    'upgrade:upgrade all of the installed packages or just those listed'
    'whatis:a synonym for describe'
    'whichpkg:find the package that supplies the given command or file'
)

_wajig_command() {
    _describe -t commands 'aptitude command' _wajig_commands
}

_wajig_alternatives() {
    _files -W /var/lib/dpkg/alternatives
}

_wajig_services() {
    _files -W /etc/init.d
}

_wajig_subcommand() {
    ((argno = CURRENT-2))
    case ${words[2]:gs/-/} in
        addcdrom) ;;
        autoalts | autoalternatives) ((argno==1)) && _wajig_alternatives ;;
        autoclean) ;;
        autodownload) ;;
        autoinstall) _deb_packages uninstalled ;;
        available) _deb_packages available ;;
        bug | bugs) ((argno==1)) && _deb_packages available ;;
        build) _deb_packages available ;;
        builddepend) _deb_packages available ;;
        changelog) _deb_packages available ;;
        clean) ;;
        dailyupgrade) ;;
        dependents) ((argno==1)) && _deb_packages available ;;
        describe | whatis) _deb_packages available ;;
        describenew) ;;
        detail | details | show) _deb_packages available ;;
        detailnew | newdetail) ;;
        distupgrade) ;;
        doc | docs) ;;
        download) _deb_packages available ;;
        filedownload | downloadfile) ((argno==1)) && _files ;;
        fileinstall | installfile) ((argno==1)) && _files ;;
        fileremove | removefile) ((argno==1)) && _files ;;
        findfile) ((argno==1)) && _files ;;
        findpkg | unofficial) ;; # no completion available
        fixconfigure) ;;
        fixinstall) ;;
        fixmissing) ;;
        force) _deb_packages uninstalled ;;
        geturl) ((argno==1)) && _deb_packages available ;;
        help) ;;
        hold) _deb_packages installed ;;
        init) ;;
        install) _deb_packages uninstalled ; _files -g '*.deb' ;;
        installr | recommended) _deb_packages uninstalled ;;
        installrs) _deb_packages uninstalled ;;
        installs | suggested) _deb_packages uninstalled ;;
        install/*) _deb_packages uninstalled ;;
        integrity) ;;
        large) _deb_packages installed ;;
        lastupdate) ;;
        list | listwide) ;; # no completion available
        listall) ;;
        listalts | listalternatives) ;;
        listcache) ;; # no completion available
        listcommands | commands) ;;
        listdaemons) ;;
        listfiles) ((argno==1)) && _deb_packages installed ;;
        listhold) ;;
        listinstalled) ;; # no completion available
        listnames) ;; # no completion available
        listorphans | orphans) ;;
        liststatus) ;; # no completion available
        localdistupgrade) ;;
        localupgrade) ;;
        move) ;;
        new) ;;
        news) _deb_packages available ;;
        newupgrades) ;;
        nonfree) ;;
        policy) _deb_packages available ;;
        purge) _deb_packages xinstalled ;;
        purgedepend) ((argno==1)) && _deb_packages xinstalled ;;
        purgeorphans) ;;
        readme) _deb_packages installed ;;
        recdownload) _deb_packages available ;;
        reconfigure) _deb_packages installed ;;
        reinstall) _deb_packages installed ;;
        reload) ((argno==1)) && _wajig_services ;;
        remove) _deb_packages installed ;;
        removedepend) _deb_packages installed ;;
        removeorphans) ;;
        repackage | package) ((argno==1)) && _deb_packages installed ;;
        reset) ;;
        restart)  ((argno==1)) && _wajig_services ;;
        rpminstall) ((argno==1)) && _files -g '*.rpm' ;;
        rpmtodeb | rpm2deb) ((argno==1)) && _files -g '*.rpm' ;;
        search) ;; # no completions available
        searchapt) compadd stable testing unstable ;;
        setup | editsources) ;;
        showdistupgrade) ;;
        showinstall) _deb_packages uninstalled ;;
        showremove) _deb_packages installed ;;
        showupgrade) ;;
        size | sizes) _deb_packages installed ;;
        snapshot) ;;
        source)  _deb_packages available ;;
        start) ((argno==1)) && _wajig_services ;;
        status) _deb_packages available ;;
        statusmatch | satussearch) ;; # no completion available
        stop) ((argno==1)) && _wajig_services ;;
        tasksel) ;;
        toupgrade) ;;
        unhold) _deb_packages held ;;
        update) ;;
        updatealts) ((argno==1)) && _wajig_alternatives ;;
        upgrade) _deb_packages installed ;;
        whichpkg) _files ;;
    esac
}

_wajig() {
    _arguments -s \
        '(- 1 *)'{-h,--help}'[print usage message]' \
        '(- 1 *)--version[display version information]' \
        '(-q --quiet)'{-q,--quiet}'[do everything quietly]' \
        '(-s --simulate)'{-s,--simulate}"[trace but don't execute]" \
        '(-t --teaching)'{-t,--teaching}'[trace the sequence of commands performed]' \
        '(-v --verbose)'{-v,--verbose}'[increase (or set) the level of verbosity]' \
        '1: :_wajig_command' \
        '*: :_wajig_subcommand'
}

_wajig $@