summaryrefslogtreecommitdiff
path: root/libre/icedove-l10n/updatelanglist.sh
diff options
context:
space:
mode:
Diffstat (limited to 'libre/icedove-l10n/updatelanglist.sh')
-rw-r--r--libre/icedove-l10n/updatelanglist.sh65
1 files changed, 54 insertions, 11 deletions
diff --git a/libre/icedove-l10n/updatelanglist.sh b/libre/icedove-l10n/updatelanglist.sh
index b188b3ee9..31448d1e7 100644
--- a/libre/icedove-l10n/updatelanglist.sh
+++ b/libre/icedove-l10n/updatelanglist.sh
@@ -13,22 +13,65 @@ echo " CARCH: $CARCH"
url="$(bash -c "source PKGBUILD && echo \"\$_src_url\"")/"
echo "_languages=(" > "languages.$CARCH.pkgnew"
+echo "_sha512sums=(" > "sha512sums.$CARCH.pkgnew"
-for lang in $(curl -sL $url | grep '\.xpi' | cut -d'"' -f2 | rev | cut -d'/' -f1 | cut -d'.' -f2 | rev | sort); do
- rm -rf ".updatelanglist.$CARCH"
- mkdir -p ".updatelanglist.$CARCH"
-
- pushd ".updatelanglist.$CARCH"
- wget "$url/$lang.xpi"
- unzip "$lang.xpi"
+mkdir -p src
- name="$(grep " \"name" manifest.json | cut -d':' -f2- | cut -d'"' -f2)"
- popd
+for lang in $(curl -sL $url | grep '\.xpi' | cut -d'"' -f2 | rev | cut -d'/' -f1 | cut -d'.' -f2 | rev | sort); do
+ echo -en "\r $lang... "
+ wget -P src -q "$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
-rm -rf ".updatelanglist.$CARCH"
+echo
echo ")" >> "languages.$CARCH.pkgnew"
-vimdiff "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"