1 # fdroid(1) completion -*- shell-script -*-
3 # bash-completion - part of the FDroid server tools
5 # Copyright (C) 2013-2017 Hans-Christoph Steiner <hans@eds.org>
6 # Copyright (C) 2013, 2014 Daniel Martà <mvdan@mvdan.cc>
8 # This program is free software: you can redistribute it and/or modify
9 # it under the terms of the GNU Affero General Public License as published by
10 # the Free Software Foundation, either version 3 of the License, or
11 # (at your option) any later version.
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU Affero General Public License for more details.
18 # You should have received a copy of the GNU Affero General Public License
19 # along with this program. If not, see <http://www.gnu.org/licenses/>.
23 cur="${COMP_WORDS[COMP_CWORD]}"
24 prev="${COMP_WORDS[COMP_CWORD-1]}"
26 (( $# >= 1 )) && __complete_${1}
31 files=( metadata/*.$ext )
32 files=( ${files[@]#metadata/} )
33 files=${files[@]%.$ext}
38 files="$(__by_ext txt) $(__by_ext yml) $(__by_ext json)"
39 COMPREPLY=( $( compgen -W "$files" -- $cur ) )
44 [ -f "${files[0]}" ] || return
46 files=( ${files[@]#*/} )
48 COMPREPLY=( $( compgen -W "$files" -- $cur ) )
54 files=( ${1}/${p}_*.apk )
55 [ -f "${files[0]}" ] || return
57 files=( ${files[@]#*_} )
58 files=${files[@]%.apk}
59 COMPREPLY=( $( compgen -P "${p}:" -W "$files" -- $cur ) )
64 echo $cur | IFS=':' read p v
66 COMPREPLY=( $( compgen -P "${p}:" -W "$( while read line; do
67 if [[ "$line" == "Build Version:"* ]]
71 elif [[ "$line" == "Build:"* ]]
76 done < "metadata/${p}.txt" )" -- $cur ) )
79 __complete_options() {
82 COMPREPLY=( $( compgen -W "--help --version ${lopts}" -- $cur ) )
85 COMPREPLY=( $( compgen -W "-h ${opts} --help --version ${lopts}" -- $cur ) )
91 opts="-v -q -l -s -t -f -a -w"
93 lopts="--verbose --quiet --latest --stop --test --server --reset-server
94 --on-server --skip-scan --no-tarball --force --all --wiki --no-refresh"
108 __complete_dscanner() {
110 lopts="--verbose --quiet --clean-after --clean-before --clean-only --init-only --latest --repo-path"
124 __complete_gpgsign() {
126 lopts="--verbose --quiet"
130 __complete_install() {
132 lopts="--verbose --quiet --all"
146 __complete_update() {
147 opts="-c -v -q -b -i -I -e -w"
148 lopts="--create-metadata --verbose --quiet --buildreport
149 --interactive --icons --editor --wiki --pretty --clean --delete-unknown
150 --nosign --rename-apks --use-date-from-apk"
159 __complete_publish() {
161 lopts="--verbose --quiet"
167 __apk_vercode unsigned
170 __apk_package unsigned
175 __complete_checkupdates() {
177 lopts="--verbose --quiet --auto --autoonly --commit --gplay --allow-dirty"
188 __complete_import() {
190 lopts="--url --subdir --rev --quiet"
192 -u|--url|-s|--subdir|--rev) return 0;;
197 __complete_readmeta() {
199 lopts="--verbose --quiet"
203 __complete_rewritemeta() {
205 lopts="--verbose --quiet --list"
218 lopts="--verbose --quiet"
229 __complete_scanner() {
231 lopts="--verbose --quiet"
245 __complete_verify() {
247 lopts="--verbose --quiet"
263 lopts="--git-remote --git-repo --url"
267 __complete_mirror() {
269 lopts="--archive --output-dir"
273 __complete_nightly() {
275 lopts="--show-secret-var"
281 lopts="--verbose --quiet --download"
285 __complete_deploy() {
287 lopts="--identity-file --local-copy-dir --sync-from-local-copy-dir
288 --verbose --quiet --no-checksum"
292 __complete_signatures() {
294 lopts="--verbose --no-check-https"
302 __complete_signindex() {
310 lopts="--verbose --quiet --distinguished-name --keystore
311 --repo-keyalias --android-home --no-prompt"
340 eval "_fdroid_${c} () {
341 local cur prev opts lopts
350 [[ $__cmds == *\ $cmd\ * ]] && _fdroid_${cmd} || {
351 (($COMP_CWORD == 1)) && COMPREPLY=( $( compgen -W "${__cmds}" -- $cmd ) )
355 complete -F _fdroid fdroid