#!/bin/bash if [ "$#" -ne 0 ] then cd "$1" || exit 1 fi typeset -a langs langs=( fra-deu deu-fra deu-eng eng-deu fra-eng eng-fra spa-eng eng-spa ) typeset -A long long[fra]=French long[deu]=German long[eng]=English long[spa]=Spanish typeset -A contrs contrs[deu-eng]=\ '# Contributor: akane '$'\n' contrs[eng-deu]=\ '# Contributor: akane '$'\n' contrs[fra-eng]=\ '# Contributor: Benjamin Vanderford '$'\n' contrs[eng-fra]=\ '# Contributor: Benjamin Vanderford '$'\n' typeset -A prepare prepare[deu-fra]=\ 'prepare() { cd $_lang sed -i '"'s/\(10\)\(100\>.*1 mit 100 Nullen\)/\1\^\2/'"' ${_lang}.tei } ' # $1: lang to update function update { echo "Updating $lang ($pkgver -> $convver)..." lang_a="${long[${lang%-*}]}" lang_b="${long[${lang#*-}]}" checksum="$(wget -qO - "$url" | sha512sum | sed -E 's/\s*-$//')" tmp="$(mktemp)" tmp_="$(mktemp)" sed -e "s/%LANG%/${lang}/" \ -e "s/%LANG_A%/${lang_a}/; s/%LANG_B%/${lang_b}/" \ -e "s/%VER%/${convver}/" \ -e "s/%CHECKSUM%/${checksum}/" \ < ../sample.PKGBUILD \ > "$tmp" if test -n "${contrs[$lang]}" then cat <(sed '/%CONTRS%/,$ d' < "$tmp") \ <(echo -n "${contrs[$lang]}") \ <(sed '0,/%CONTRS%/ d' < "$tmp") \ > "$tmp_" else sed '/%CONTRS%/ d' < "$tmp" > "$tmp_" fi if [[ "$ver" == "$convver" ]] then sed -i \ -e '/^_pkgver=\${pkgver\/\/_\/-}$/ d' \ -e 's/_pkgver/pkgver/g' \ "$tmp_" fi if test -n "${prepare[$lang]}" then cat <(sed '/%PREPARE%/,$ d' < "$tmp_") \ <(echo -n "${prepare[$lang]}") \ <(sed '0,/%PREPARE%/ d' < "$tmp_") \ > PKGBUILD else sed '/%PREPARE%/,+1 d' < "$tmp_" > PKGBUILD fi makepkg --printsrcinfo > .SRCINFO rm "$tmp" "$tmp_" } curl -sO http://freedict.org/freedict-database.json for lang in ${langs[@]} do cd dict-freedict-${lang} git pull -q pkgver="$(grep pkgver .SRCINFO | sed -E 's/\s*pkgver\s*=\s*(.+)\s*/\1/')" ver="$(jq -r ".[] | select(.name == \"${lang}\") | .releases[] | select(.platform==\"src\") | .version" ../freedict-database.json)" url="$(jq -r ".[] | select(.name == \"${lang}\") | .releases[] | select(.platform==\"src\") | .URL" ../freedict-database.json)" url="${url%/download}" convver="${ver//-/_}" if [[ "$pkgver" != "$convver" ]] then echo "$lang requires update ($pkgver -> $convver)." urq=true else urq=false fi if [[ "$url" != "https://sourceforge.net/projects/freedict/files/${lang}/${ver}/freedict-${lang}-${ver}.src.tar.xz" ]] then echo "$lang URL changed ($url)." else if [[ "$1" == "-u" && "$2" == "$lang" ]] || ([[ "$1" == "-ua" ]] && $urq) then update "$2" fi fi cd .. done