# 'fdroid' is aliased 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
+# 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
+# alias fbuild='fdroid build'
+# complete -F _fdroid_build fbuild
#
# There are also completion function for '-p com.some.app' aliases:
#
-# alias fbld='fdroid build -v -l -p'
-# complete -F _fdroid_build_project fbld
+# alias fbld='fdroid build -v -l -p'
+# complete -F _fdroid_build_project fbld
#
-# alias fcheckup='fdroid checkupdates -v -p'
-# complete -F _fdroid_checkupdates_project fcheckup
+# alias fcheckup='fdroid checkupdates -v -p'
+# complete -F _fdroid_checkupdates_project fcheckup
#
# This way, one can simply do 'fbld com.some.app' or 'fcheckup com.some.app'
commands=()
while read line; do
- if [[ "$line" == *M*metadata/*.txt ]]; then
- file=${line##* }
-
- while read l; do
- [[ "$l" == "Auto Name:"* ]] && name=${l##*:}
- done < "$file"
-
- id=${file##*/}
- id=${id%.txt*}
- [ -d metadata/$id ] && extra=metadata/$id
- [ -n "$name" ] && id="$name ($id)"
-
- newbuild=0
- while read l; do
- if [[ "$l" == "+Build:"* ]]; then
- newbuild=1
- build=${l#*:}
- version=${build%%,*}
- build=${build#*,}
- vercode=${build%%,*}
- fi
- done < <(git diff HEAD -- "$file")
-
- if [ $newbuild -eq 0 ]
- then
+ if [[ "$line" == *M*metadata/*.txt ]]; then
+ file=${line##* }
+
+ id=${file##*/}
+ id=${id%.txt*}
+ if [ $# -gt 0 ]; then
+ found=false
+ for arg in "$@"; do
+ if [ "$id" == "$arg" ]; then
+ found=true
+ break
+ fi
+ done
+ $found || continue
+ fi
+
+ [ -d metadata/$id ] && extra=metadata/$id
+
+ while read l; do
+ if [[ "$l" == "Auto Name:"* ]]; then
+ name=${l##*:}
+ break
+ fi
+ done < "$file"
+
+ [ -n "$name" ] && id="$name ($id)"
+
+ newbuild=0
+ while read l; do
+ if [[ "$l" == "+Build:"* ]]; then
+ newbuild=1
+ build=${l#*:}
+ version=${build%%,*}
+ build=${build#*,}
+ vercode=${build%%,*}
+ fi
+ done < <(git diff HEAD -- "$file")
+
+ if [ $newbuild -eq 0 ]; then
message="$id:"
else
message="Update $id to $version ($vercode)"
fi
- commands+=("git commit -m '$message' -e -v -- $file $extra")
- fi
+ commands+=("git commit -m '$message' -e -v -- $file $extra")
+ fi
done < <(git status --porcelain)
for cmd in "${commands[@]}"; do
- eval "$cmd"
+ eval "$cmd"
done