-#!/bin/bash
+# fdroid(1) completion -*- shell-script -*-
#
# bash-completion - part of the FDroid server tools
-# Bash completion for the fdroid main tools
#
+# Copyright (C) 2013-2017 Hans-Christoph Steiner <hans@eds.org>
# Copyright (C) 2013, 2014 Daniel Martà <mvdan@mvdan.cc>
#
# This program is free software: you can redistribute it and/or modify
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# 'fdroid' is completed automatically, but aliases to it are not.
-# For instance, to alias 'fd' to 'fdroid' and have competion available:
-#
-# alias fd='fdroid'
-# complete -F _fdroid fd
-#
-# One can use completion on aliased subcommands as follows:
-#
-# alias fbuild='fdroid build'
-# complete -F _fdroid_build fbuild
-
__fdroid_init() {
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
(( $# >= 1 )) && __complete_${1}
}
-__package() {
- files=( metadata/*.txt )
+__by_ext() {
+ local ext="$1"
+ files=( metadata/*.$ext )
files=( ${files[@]#metadata/} )
- files=${files[@]%.txt}
+ files=${files[@]%.$ext}
+ echo "$files"
+}
+
+__package() {
+ files="$(__by_ext txt) $(__by_ext yaml) $(__by_ext json) $(__by_ext xml)"
COMPREPLY=( $( compgen -W "$files" -- $cur ) )
}
__complete_options() {
case "${cur}" in
--*)
- COMPREPLY=( $( compgen -W "${lopts}" -- $cur ) )
+ COMPREPLY=( $( compgen -W "--help --version ${lopts}" -- $cur ) )
return 0;;
*)
- COMPREPLY=( $( compgen -W "${opts} ${lopts}" -- $cur ) )
+ COMPREPLY=( $( compgen -W "-h ${opts} --help --version ${lopts}" -- $cur ) )
return 0;;
esac
}
__complete_build() {
- opts="-h -v -q -l -s -t -f -a -w"
+ opts="-v -q -l -s -t -f -a -w"
- lopts="--help --verbose --quiet --latest --stop --test --server --resetserver
- --on-server --skip-scan --no-tarball --force --all --wiki"
+ lopts="--verbose --quiet --latest --stop --test --server --resetserver
+ --on-server --skip-scan --no-tarball --force --all --wiki --no-refresh"
case "${cur}" in
-*)
__complete_options
esac
}
+__complete_dscanner() {
+ opts="-v -q -l"
+ lopts="--verbose --quiet --clean-after --clean-before --clean-only --init-only --latest --repo-path"
+ case "${cur}" in
+ -*)
+ __complete_options
+ return 0;;
+ *:)
+ __vercode
+ return 0;;
+ *)
+ __package
+ return 0;;
+ esac
+}
+
+__complete_gpgsign() {
+ opts="-v -q"
+ lopts="--verbose --quiet"
+ __complete_options
+}
+
__complete_install() {
- opts="-h -v"
- lopts="--help --verbose --all"
+ opts="-v -q"
+ lopts="--verbose --quiet --all"
case "${cur}" in
-*)
__complete_options
}
__complete_update() {
- opts="-h -c -v -q -b -i -I -e -w"
- lopts="--help --createmeta --verbose --quiet --buildreport --interactive
- --icons --editor --wiki --pretty --clean"
+ opts="-c -v -q -b -i -I -e -w"
+ lopts="--create-metadata --verbose --quiet --buildreport
+ --interactive --icons --editor --wiki --pretty --clean --delete-unknown
+ --nosign --rename-apks --use-date-from-apk"
case "${prev}" in
-e|--editor)
_filedir
}
__complete_publish() {
- opts="-h -v"
- lopts="--help --verbose"
+ opts="-v -q"
+ lopts="--verbose --quiet"
case "${cur}" in
-*)
__complete_options
}
__complete_checkupdates() {
- opts="-h -v"
- lopts="--help --verbose --auto --autoonly --commit --gplay"
+ opts="-v -q"
+ lopts="--verbose --quiet --auto --autoonly --commit --gplay"
case "${cur}" in
-*)
__complete_options
}
__complete_import() {
- opts="-h -u -s -r -q"
- lopts="--help --url --subdir --repo --rev --quiet"
+ opts="-u -s -q"
+ lopts="--url --subdir --rev --quiet"
case "${prev}" in
- -u|--url|-r|--repo|-s|--subdir|--rev) return 0;;
+ -u|--url|-s|--subdir|--rev) return 0;;
esac
__complete_options
}
__complete_readmeta() {
- opts="-h -v"
- lopts="--help --verbose"
+ opts="-v -q"
+ lopts="--verbose --quiet"
__complete_options
}
__complete_rewritemeta() {
- opts="-h -v"
- lopts="--help --verbose"
+ opts="-v -q -l"
+ lopts="--verbose --quiet --list"
case "${cur}" in
-*)
__complete_options
}
__complete_lint() {
- opts="-h -v -p"
- lopts="--help --verbose --pedantic"
+ opts="-v -q"
+ lopts="--verbose --quiet"
case "${cur}" in
-*)
__complete_options
}
__complete_scanner() {
- opts="-h -v"
- lopts="--help --verbose --nosvn"
+ opts="-v -q"
+ lopts="--verbose --quiet"
case "${cur}" in
-*)
__complete_options
}
__complete_verify() {
- opts="-h -v -p"
- lopts="--help --verbose"
+ opts="-v -q -p"
+ lopts="--verbose --quiet"
case "${cur}" in
-*)
__complete_options
esac
}
+__complete_btlog() {
+ opts="-u"
+ lopts="--git-remote --git-repo --url"
+ __complete_options
+}
+
__complete_stats() {
- opts="-h -v -d"
- lopts="--help --verbose --download"
+ opts="-v -q -d"
+ lopts="--verbose --quiet --download"
__complete_options
}
__complete_server() {
- opts="-h -v"
- lopts="--help --verbose update"
+ opts="-i -v -q"
+ lopts="--identity-file --local-copy-dir --sync-from-local-copy-dir
+ --verbose --quiet --no-checksum update"
+ __complete_options
+}
+
+__complete_signatures() {
+ opts="-v -q"
+ lopts="--verbose --no-check-https"
+ case "${cur}" in
+ -*)
+ __complete_options
+ return 0;;
+ esac
+}
+
+__complete_signindex() {
+ opts="-v -q"
+ lopts="--verbose"
__complete_options
}
__complete_init() {
- opts="-h -v -d"
- lopts="--help --verbose --keystore --distinguished-name --repo-keyalias"
+ opts="-v -q -d"
+ lopts="--verbose --quiet --distinguished-name --keystore
+ --repo-keyalias --android-home --no-prompt"
__complete_options
}
+__cmds=" \
+btlog \
+build \
+checkupdates \
+dscanner \
+gpgsign \
+import \
+init \
+install \
+lint \
+publish \
+readmeta \
+rewritemeta \
+scanner \
+server \
+signatures \
+signindex \
+stats \
+update \
+verify \
+"
+
+for c in $__cmds; do
+ eval "_fdroid_${c} () {
+ local cur prev opts lopts
+ __fdroid_init ${c}
+ }"
+done
+
_fdroid() {
- local cmd cmds
+ local cmd
cmd=${COMP_WORDS[1]}
- cmds=" build init install update publish checkupdates import \
-readmeta rewritemeta lint scanner verify stats server "
-
- for c in $cmds; do eval "_fdroid_${c} () {
- local cur prev opts lopts
- __fdroid_init ${c};
- }"; done
- [[ $cmds == *\ $cmd\ * ]] && _fdroid_${cmd} || {
- (($COMP_CWORD == 1)) && COMPREPLY=( $( compgen -W "${cmds}" -- $cmd ) )
+ [[ $__cmds == *\ $cmd\ * ]] && _fdroid_${cmd} || {
+ (($COMP_CWORD == 1)) && COMPREPLY=( $( compgen -W "${__cmds}" -- $cmd ) )
}
}