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
18 cur="${COMP_WORDS[COMP_CWORD]}"
19 prev="${COMP_WORDS[COMP_CWORD-1]}"
21 (( $# >= 1 )) && __complete_${1}
25 files=( metadata/*.txt )
26 files=( ${files[@]#metadata/} )
27 files=${files[@]%.txt}
28 COMPREPLY=( $( compgen -W "$files" -- $cur ) )
33 [ -f "${files[0]}" ] || return
35 files=( ${files[@]#*/} )
37 COMPREPLY=( $( compgen -W "$files" -- $cur ) )
44 files=( ${1}/${p}_*.apk )
45 [ -f "${files[0]}" ] || return
47 files=( ${files[@]#*_} )
48 files=${files[@]%.apk}
49 COMPREPLY=( $( compgen -P "${p}:" -W "$files" -- $cur ) )
56 COMPREPLY=( $( compgen -P "${p}:" -W "$( while read line; do
57 if [[ "$line" == "Build Version:"* ]]
61 elif [[ "$line" == "Build:"* ]]
66 done < "metadata/${p}.txt" )" -- $cur ) )
69 __complete_options() {
72 COMPREPLY=( $( compgen -W "${lopts}" -- $cur ) )
75 COMPREPLY=( $( compgen -W "${opts} ${lopts}" -- $cur ) )
81 opts="-h -v -p -c -l -s -t -f"
82 lopts="--help --verbose --latest --server --resetserver --on-server
95 __complete_install() {
97 lopts="--help --verbose --all"
111 __complete_update() {
112 opts="-h -c -v -q -b -i -I -e -w"
113 lopts="--help --createmeta --verbose --quiet --buildreport --interactive
114 --icons --editor --wiki --pretty --clean"
123 __complete_publish() {
125 lopts="--help --verbose"
131 __apk_vercode unsigned
134 __apk_package unsigned
139 __complete_checkupdates() {
141 lopts="--help --verbose --auto --autoonly --commit --gplay"
152 __complete_import() {
154 lopts="--help --url --subdir --repo"
156 -u|--url|-r|--repo) return 0;;
164 __complete_rewritemeta() {
166 lopts="--help --verbose --package"
175 __complete_scanner() {
177 lopts="--help --verbose --package --nosvn"
186 __complete_verify() {
188 lopts="--help --verbose --package"
199 lopts="--help --verbose --download"
203 __complete_server() {
205 lopts="--help --verbose update"
211 lopts="--help --verbose --keystore --distinguished-name --repo-keyalias"
216 local cmd cmds aliased
218 cmds=" build init install update publish checkupdates import
219 rewritemeta scanner verify stats server "
222 for c in $cmds; do eval "_fdroid_${c} () {
223 local cur prev cmds opts lopts
227 [[ $cmds == *\ $cmd\ * ]] && _fdroid_${cmd} || {
228 (($COMP_CWORD == 1)) && COMPREPLY=( $( compgen -W "${cmds}" -- $cmd ) )
236 complete -F _fdroid fdroid
237 complete -F _fd-commit fd-commit