blob: 50720e71eeb9aef782af54fb5ae4d9299340619a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
#!/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 <grangerspit@gmail.com> <xmpp:heiß@neko.im>'$'\n'
contrs[eng-deu]=\
'# Contributor: akane <grangerspit@gmail.com> <xmpp:heiß@neko.im>'$'\n'
contrs[fra-eng]=\
'# Contributor: Benjamin Vanderford <hazor_at_swrpg_dot_info>'$'\n'
contrs[eng-fra]=\
'# Contributor: Benjamin Vanderford <hazor_at_swrpg_dot_info>'$'\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
|