diff options
Diffstat (limited to 'libre/icedove-l10n/updatelanglist.sh')
-rw-r--r-- | libre/icedove-l10n/updatelanglist.sh | 65 |
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" |