summaryrefslogtreecommitdiff
path: root/libre/iceweasel-l10n/updatelanglist.sh
diff options
context:
space:
mode:
authorAndreas Grapentin <andreas@grapentin.org>2020-11-04 22:11:13 +0100
committerAndreas Grapentin <andreas@grapentin.org>2020-11-04 22:11:13 +0100
commit83b8bf4938619acd81eacec0fa408498b386a603 (patch)
tree93095878e6e6b79f66ab93a01d97bfa031b27b0a /libre/iceweasel-l10n/updatelanglist.sh
parent72562b49e48854ab9245909c692bf6deef629646 (diff)
downloadabslibre-83b8bf4938619acd81eacec0fa408498b386a603.tar.gz
abslibre-83b8bf4938619acd81eacec0fa408498b386a603.tar.bz2
abslibre-83b8bf4938619acd81eacec0fa408498b386a603.zip
libre/iceweasel-l10n: updated language list update script
Diffstat (limited to 'libre/iceweasel-l10n/updatelanglist.sh')
-rw-r--r--libre/iceweasel-l10n/updatelanglist.sh77
1 files changed, 77 insertions, 0 deletions
diff --git a/libre/iceweasel-l10n/updatelanglist.sh b/libre/iceweasel-l10n/updatelanglist.sh
new file mode 100644
index 000000000..1d9ad9583
--- /dev/null
+++ b/libre/iceweasel-l10n/updatelanglist.sh
@@ -0,0 +1,77 @@
+#!/bin/bash
+# helper script to check the local language list against upstream
+
+export CARCH="${CARCH:-$(uname -m)}"
+
+# extract pkgbase from pkgbuild
+pkgbase="$(bash -c "source PKGBUILD && echo \"\$_pkgbase\"")"
+
+echo "attempting update to language lists for $pkgbase"
+echo " CARCH: $CARCH"
+
+# produce new language list
+url="$(bash -c "source PKGBUILD && echo \"\$_src_url\"")/"
+
+echo "_languages=(" > "languages.$CARCH.pkgnew"
+echo "_sha512sums=(" > "sha512sums.$CARCH.pkgnew"
+
+mkdir -p src
+
+for lang in $(curl -sL "$url" | grep '\.xpi' | cut -d'"' -f2 | rev | cut -d'/' -f1 | cut -d'.' -f2 | rev | sort); do
+ printf "\r %-3s..." "${lang%%-*}"
+ curl -s -o src/"$lang.xpi" "${url%/}/$lang.xpi"
+ sha512sum="$(sha512sum "src/$lang.xpi" | cut -d' ' -f1)"
+ name="$(unzip -p "src/$lang.xpi" manifest.json | grep " \"name" | cut -d':' -f2- | cut -d'"' -f2)"
+
+ printf " '%-5s \"%s\"'\n" "$lang" "$name" \
+ >> "languages.$CARCH.pkgnew"
+ printf " '%s'\n" "$sha512sum" \
+ >> "sha512sums.$CARCH.pkgnew"
+done
+echo
+
+echo ")" >> "languages.$CARCH.pkgnew"
+echo ")" >> "sha512sums.$CARCH.pkgnew"
+
+admsq() {
+ if cmp "$1"{,.pkgnew} > /dev/null; then
+ echo "$1 unchanged"
+ rm -f "$1.pkgnew"
+ else
+ diff -rupN "$1"{,.pkgnew}
+ while true; do
+ read -n1 -p "[a]pply, [d]elete, [m]erge, [s]kip, [q]uit " x
+ echo
+ case $x in
+ a) mv "$1"{.pkgnew,}
+ break
+ ;;
+ d) rm -f "$1".pkgnew
+ break
+ ;;
+ m) vimdiff "$1"{,.pkgnew}
+ rm "$1".pkgnew
+ break
+ ;;
+ s) break
+ ;;
+ q) exit
+ ;;
+ *) ;;
+ esac
+ done
+ fi
+}
+
+# compare and update
+admsq "languages.$CARCH"
+admsq "sha512sums.$CARCH"
+
+# update PKGBUILD checksums
+_languages_shasum="$(sha512sum "languages.$CARCH" | cut -d' ' -f1)"
+_sha512sums_shasum="$(sha512sum "sha512sums.$CARCH" | cut -d' ' -f1)"
+sed -e "s/^_languages_${CARCH}_shasum=.*/_languages_${CARCH}_shasum=\"${_languages_shasum}\"/" \
+ -e "s/^_sha512sums_${CARCH}_shasum=.*/_sha512sums_${CARCH}_shasum=\"${_sha512sums_shasum}\"/" \
+ PKGBUILD > PKGBUILD.pkgnew
+
+admsq "PKGBUILD"