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 are also completion function for '-p com.some.app' aliases:
18 # alias fbld='fdroid build -v -l -p'
19 # complete -F _fdroid_build_project fbld
21 # alias fcheckup='fdroid checkupdates -v -p'
22 # complete -F _fdroid_checkupdates_project fcheckup
24 # This way, one can simply do 'fbld com.some.app' or 'fcheckup com.some.app'
28 cur="${COMP_WORDS[COMP_CWORD]}"
29 prev="${COMP_WORDS[COMP_CWORD-1]}"
31 (( $# >= 1 )) && __complete_${1}
35 files=( metadata/*.txt )
36 files=( ${files[@]#metadata/} )
37 files=${files[@]%.txt}
38 COMPREPLY=( $( compgen -W "$files" -- $cur ) )
43 if [ "${files[0]}" == "repo/*.apk" ]; then
46 files=( ${files[@]#repo/} )
48 COMPREPLY=( $( compgen -W "$files" -- $cur ) )
55 files=( repo/${p}_*.apk )
56 files=( ${files[@]#*_} )
57 files=${files[@]%.apk}
58 COMPREPLY=( $( compgen -P "${p}:" -W "$files" -- $cur ) )
65 COMPREPLY=( $( compgen -P "${p}:" -W "$( while read line; do
66 if [[ "$line" == "Build Version:"* ]]
70 elif [[ "$line" == "Build:"* ]]
75 done < "metadata/${p}.txt" )" -- $cur ) )
78 __complete_options() {
81 COMPREPLY=( $( compgen -W "${lopts}" -- $cur ) )
84 COMPREPLY=( $( compgen -W "${opts} ${lopts}" -- $cur ) )
90 opts="-h -v -p -c -l -s -t -f"
91 lopts="--help --verbose --latest --server --resetserver --on-server
104 __complete_install() {
106 lopts="--help --verbose --all"
120 __complete_update() {
121 opts="-h -c -v -q -b -i -I -e -w"
122 lopts="--help --createmeta --verbose --quiet --buildreport --interactive
123 --icons --editor --wiki --pretty --clean"
132 __complete_publish() {
134 lopts="--help --verbose --package"
143 __complete_checkupdates() {
145 lopts="--help --verbose --auto --autoonly --commit --gplay"
156 __complete_import() {
158 lopts="--help --url --subdir --repo"
160 -u|--url|-r|--repo) return 0;;
168 __complete_rewritemeta() {
170 lopts="--help --verbose --package"
179 __complete_scanner() {
181 lopts="--help --verbose --package --nosvn"
190 __complete_verify() {
192 lopts="--help --verbose --package"
203 lopts="--help --verbose --download"
207 __complete_server() {
209 lopts="--help --verbose update"
215 lopts="--help --verbose --keystore --distinguished-name --repo-keyalias"
220 local cmd cmds aliased
222 cmds=" build init install update publish checkupdates import
223 rewritemeta scanner verify stats server "
226 for c in $cmds; do eval "_fdroid_${c} () {
227 local cur prev cmds opts lopts
231 [[ $cmds == *\ $cmd\ * ]] && _fdroid_${cmd} || {
232 (($COMP_CWORD == 1)) && COMPREPLY=( $( compgen -W "${cmds}" -- $cmd ) )
240 complete -F _fdroid fdroid
241 complete -F _fd-commit fd-commit