From 83b8bf4938619acd81eacec0fa408498b386a603 Mon Sep 17 00:00:00 2001 From: Andreas Grapentin Date: Wed, 4 Nov 2020 22:11:13 +0100 Subject: libre/iceweasel-l10n: updated language list update script --- libre/iceweasel-l10n/updatelanglist.sh | 77 ++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 libre/iceweasel-l10n/updatelanglist.sh (limited to 'libre/iceweasel-l10n/updatelanglist.sh') 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" -- cgit v1.2.3