]> code.delx.au - monosys/commitdiff
check-aur-updates: query AUR for all packages at once to make it faster
authorJames Bunton <jbunton@atlassian.com>
Thu, 20 Apr 2017 02:51:11 +0000 (12:51 +1000)
committerJames Bunton <jbunton@atlassian.com>
Thu, 20 Apr 2017 02:51:11 +0000 (12:51 +1000)
check-aur-updates

index 67d4ef41ea1d49394d887c693635fd5b58d36368..82fd0c5185d6d0cb83d693a242981b5d276177e5 100755 (executable)
@@ -2,8 +2,16 @@
 
 set -eu
 
-pacman -Qm | while read pkg installed_version; do
-    aur_version="$(curl -gsSf "https://aur.archlinux.org/rpc/?v=5&type=info&arg[]=${pkg}" | jq -r '.results[0].Version')"
+declare -A pkg_versions
+query_url='https://aur.archlinux.org/rpc/?v=5&type=info'
+
+while read pkg installed_version; do
+    pkg_versions[$pkg]="$installed_version"
+    query_url="${query_url}&arg[]=${pkg}"
+done < <(pacman -Qm)
+
+curl -gsSf "$query_url" | jq -r '.results[] | .Name, .Version, "\u0000"' | while read -d $'\0' pkg aur_version; do
+    installed_version="${pkg_versions[$pkg]}"
     if [ "$installed_version" != "$aur_version" ]; then
         echo "New ${pkg}: $installed_version -> $aur_version"
     fi