3 # fdroid completion support.
5 # 'fdroid' is aliased automatically, but aliases to it are not. For instance,
6 # to alias 'fd' to 'fdroid' and have competion available:
9 # complete -F _fdroid fd
11 # One can use completion on aliased subcommands as follows:
13 # alias fbuild='fdroid build'
14 # complete -F _fdroid_build fbuild
16 # There's also a completion function made for aliases to 'fdroid build -p':
18 # alias fbld='fdroid build -p'
19 # complete -F _fdroid_build_project fbld
22 [[ -d ./metadata ]] || return 0
23 files=( metadata/*.txt )
24 files=( ${files[@]/metadata\//} )
25 files=${files[@]/.txt/}
26 COMPREPLY=( $( compgen -W "$files" -- $cur ) )
31 cur="${COMP_WORDS[COMP_CWORD]}"
32 prev="${COMP_WORDS[COMP_CWORD-1]}"
34 (( $# >= 1 )) && __complete_${1}
42 $aliased && p=${COMP_WORDS[1]} || {
43 for (( i=1; i <= s; i++ )); do
44 $p_found && { p=${COMP_WORDS[$i]}; break;}
45 [[ ${COMP_WORDS[$i]} == -p ]] || [[ ${COMP_WORDS[$i]} == --package ]] &&\
51 COMPREPLY=( $( compgen -W "$( while read line; do
52 [[ "$line" == "Build Version:"* ]] && {
55 } done < "metadata/${p}.txt" )" -- $cur ) )
58 __complete_options() {
61 COMPREPLY=( $( compgen -W "${lopts}" -- $cur ) )
64 COMPREPLY=( $( compgen -W "${opts} ${lopts}" -- $cur ) )
70 opts="-h -v -p -c -l -s -t -f"
71 lopts="--help --verbose --package --vercode --latest --server --resetserver
72 --on-server --force --install --all"
85 opts="-h -c -v -q -b -i -I -e -w"
86 lopts="--help --createmeta --verbose --quiet --buildreport --interactive
87 --icons --editor --wiki --pretty --clean"
96 __complete_publish() {
98 lopts="--help --verbose --package"
107 __complete_checkupdates() {
109 lopts="--help --verbose --package --auto --autoonly --commit --gplay"
118 __complete_import() {
120 lopts="--help --url --subdir --repo"
122 -u|--url|-r|--repo) return 0;;
130 __complete_rewritemeta() {
132 lopts="--help --verbose --package"
141 __complete_scanner() {
143 lopts="--help --verbose --package --nosvn"
154 lopts="--help --verbose --download"
158 __complete_server() {
160 lopts="--help --verbose update"
165 local cmd cmds aliased
167 cmds=" build update publish checkupdates import rewritemeta scanner stats server "
170 for c in $cmds; do eval "_fdroid_${c} () {
171 local cur prev cmds opts lopts
175 [[ $cmds == *\ $cmd\ * ]] && _fdroid_${cmd} || {
176 (($COMP_CWORD == 1)) && COMPREPLY=( $( compgen -W "${cmds}" -- $cmd ) )
180 _fdroid_build_project() {
181 local cur prev cmds opts lopts aliased
184 (( $COMP_CWORD == 1 )) && prev="-p"
189 complete -F _fdroid fdroid