Support new Build: syntax in completion; retab

This commit is contained in:
Daniel Martí 2013-10-29 00:19:33 +01:00
parent 8627357cd9
commit c47b1dc286

View file

@ -24,191 +24,197 @@
# This way, one can simply do 'fbld com.some.app' or 'fcheckup com.some.app' # This way, one can simply do 'fbld com.some.app' or 'fcheckup com.some.app'
__package() { __package() {
[[ -d ./metadata ]] || return 0 [[ -d ./metadata ]] || return 0
files=( metadata/*.txt ) files=( metadata/*.txt )
files=( ${files[@]#metadata/} ) files=( ${files[@]#metadata/} )
files=${files[@]%.txt} files=${files[@]%.txt}
COMPREPLY=( $( compgen -W "$files" -- $cur ) ) COMPREPLY=( $( compgen -W "$files" -- $cur ) )
} }
__fdroid_init() { __fdroid_init() {
COMPREPLY=() COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}" cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}" prev="${COMP_WORDS[COMP_CWORD-1]}"
(( $# >= 1 )) && __complete_${1} (( $# >= 1 )) && __complete_${1}
} }
__vercode() { __vercode() {
local s p_found p local s p_found p
s=${#COMP_WORDS[*]} s=${#COMP_WORDS[*]}
p_found=false p_found=false
$aliased && p=${COMP_WORDS[1]} || { $aliased && p=${COMP_WORDS[1]} || {
for (( i=1; i <= s; i++ )); do for (( i=1; i <= s; i++ )); do
$p_found && { p=${COMP_WORDS[$i]}; break;} $p_found && { p=${COMP_WORDS[$i]}; break;}
[[ ${COMP_WORDS[$i]} == -p ]] || [[ ${COMP_WORDS[$i]} == --package ]] &&\ [[ ${COMP_WORDS[$i]} == -p ]] || [[ ${COMP_WORDS[$i]} == --package ]] &&\
p_found=true p_found=true
done done
$p_found || return 0 $p_found || return 0
} }
COMPREPLY=( $( compgen -W "$( while read line; do COMPREPLY=( $( compgen -W "$( while read line; do
[[ "$line" == "Build Version:"* ]] && { if [[ "$line" == "Build Version:"* ]]
line="${line#*,}" then
printf "${line%%,*} " line="${line#*,}"
} done < "metadata/${p}.txt" )" -- $cur ) ) printf "${line%%,*} "
elif [[ "$line" == "Build:"* ]]
then
line="${line#*,}"
printf "${line%%,*} "
fi
done < "metadata/${p}.txt" )" -- $cur ) )
} }
__complete_options() { __complete_options() {
case "${cur}" in case "${cur}" in
--*) --*)
COMPREPLY=( $( compgen -W "${lopts}" -- $cur ) ) COMPREPLY=( $( compgen -W "${lopts}" -- $cur ) )
return 0;; return 0;;
*) *)
COMPREPLY=( $( compgen -W "${opts} ${lopts}" -- $cur ) ) COMPREPLY=( $( compgen -W "${opts} ${lopts}" -- $cur ) )
return 0;; return 0;;
esac esac
} }
__complete_build() { __complete_build() {
opts="-h -v -p -c -l -s -t -f" opts="-h -v -p -c -l -s -t -f"
lopts="--help --verbose --package --vercode --latest --server --resetserver lopts="--help --verbose --package --vercode --latest --server --resetserver
--on-server --force --install --all" --on-server --force --install --all"
case "${prev}" in case "${prev}" in
-p|--package) -p|--package)
__package __package
return 0;; return 0;;
-c|--vercode) -c|--vercode)
__vercode __vercode
return 0;; return 0;;
esac esac
__complete_options __complete_options
} }
__complete_update() { __complete_update() {
opts="-h -c -v -q -b -i -I -e -w" opts="-h -c -v -q -b -i -I -e -w"
lopts="--help --createmeta --verbose --quiet --buildreport --interactive lopts="--help --createmeta --verbose --quiet --buildreport --interactive
--icons --editor --wiki --pretty --clean" --icons --editor --wiki --pretty --clean"
case "${prev}" in case "${prev}" in
-e|--editor) -e|--editor)
_filedir _filedir
return 0;; return 0;;
esac esac
__complete_options __complete_options
} }
__complete_publish() { __complete_publish() {
opts="-h -v -p" opts="-h -v -p"
lopts="--help --verbose --package" lopts="--help --verbose --package"
case "${prev}" in case "${prev}" in
-p|--package) -p|--package)
__package __package
return 0;; return 0;;
esac esac
__complete_options __complete_options
} }
__complete_checkupdates() { __complete_checkupdates() {
opts="-h -v -p" opts="-h -v -p"
lopts="--help --verbose --package --auto --autoonly --commit --gplay" lopts="--help --verbose --package --auto --autoonly --commit --gplay"
case "${prev}" in case "${prev}" in
-p|--package) -p|--package)
__package __package
return 0;; return 0;;
esac esac
__complete_options __complete_options
} }
__complete_import() { __complete_import() {
opts="-h -u -s -r" opts="-h -u -s -r"
lopts="--help --url --subdir --repo" lopts="--help --url --subdir --repo"
case "${prev}" in case "${prev}" in
-u|--url|-r|--repo) return 0;; -u|--url|-r|--repo) return 0;;
-s|--subdir) -s|--subdir)
_filedir _filedir
return 0;; return 0;;
esac esac
__complete_options __complete_options
} }
__complete_rewritemeta() { __complete_rewritemeta() {
opts="-h -v -p" opts="-h -v -p"
lopts="--help --verbose --package" lopts="--help --verbose --package"
case "${prev}" in case "${prev}" in
-p|--package) -p|--package)
__package __package
return 0;; return 0;;
esac esac
__complete_options __complete_options
} }
__complete_scanner() { __complete_scanner() {
opts="-h -v -p" opts="-h -v -p"
lopts="--help --verbose --package --nosvn" lopts="--help --verbose --package --nosvn"
case "${prev}" in case "${prev}" in
-p|--package) -p|--package)
__package __package
return 0;; return 0;;
esac esac
__complete_options __complete_options
} }
__complete_verify() { __complete_verify() {
opts="-h -v -p" opts="-h -v -p"
lopts="--help --verbose --package" lopts="--help --verbose --package"
case "${prev}" in case "${prev}" in
-p|--package) -p|--package)
__package __package
return 0;; return 0;;
esac esac
__complete_options __complete_options
} }
__complete_stats() { __complete_stats() {
opts="-h -v -d" opts="-h -v -d"
lopts="--help --verbose --download" lopts="--help --verbose --download"
__complete_options __complete_options
} }
__complete_server() { __complete_server() {
opts="-h -v" opts="-h -v"
lopts="--help --verbose update" lopts="--help --verbose update"
__complete_options __complete_options
} }
_fdroid() { _fdroid() {
local cmd cmds aliased local cmd cmds aliased
cmd=${COMP_WORDS[1]} cmd=${COMP_WORDS[1]}
cmds=" build update publish checkupdates import rewritemeta scanner verify stats server " cmds=" build update publish checkupdates import rewritemeta scanner verify stats server "
aliased=false aliased=false
for c in $cmds; do eval "_fdroid_${c} () { for c in $cmds; do eval "_fdroid_${c} () {
local cur prev cmds opts lopts local cur prev cmds opts lopts
__fdroid_init ${c}; __fdroid_init ${c};
}"; done }"; done
[[ $cmds == *\ $cmd\ * ]] && _fdroid_${cmd} || { [[ $cmds == *\ $cmd\ * ]] && _fdroid_${cmd} || {
(($COMP_CWORD == 1)) && COMPREPLY=( $( compgen -W "${cmds}" -- $cmd ) ) (($COMP_CWORD == 1)) && COMPREPLY=( $( compgen -W "${cmds}" -- $cmd ) )
} }
} }
_fdroid_build_project() { _fdroid_build_project() {
local cur prev cmds opts lopts aliased local cur prev cmds opts lopts aliased
__fdroid_init __fdroid_init
aliased=true aliased=true
(( $COMP_CWORD == 1 )) && prev="-p" (( $COMP_CWORD == 1 )) && prev="-p"
__complete_build __complete_build
} }
_fdroid_checkupdates_project() { _fdroid_checkupdates_project() {
local cur prev cmds opts lopts aliased local cur prev cmds opts lopts aliased
__fdroid_init __fdroid_init
aliased=true aliased=true
(( $COMP_CWORD == 1 )) && prev="-p" (( $COMP_CWORD == 1 )) && prev="-p"
__complete_checkupdates __complete_checkupdates
} }
complete -F _fdroid fdroid complete -F _fdroid fdroid