/[smeserver]/builds_bin/update_templates
ViewVC logotype

Contents of /builds_bin/update_templates

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Tue Jul 8 13:58:19 2008 UTC (15 years, 9 months ago) by slords
Branch: MAIN
Updates

1 #!/bin/bash
2
3 # Functions
4 . /etc/pootle/bin/functions
5
6 # Clean up tmp dir
7 rm -rf /etc/pootle/tmp
8 mkdir -p /etc/pootle/tmp /var/www/html/{patches,errors,anaconda}
9
10 #==========================================================
11
12 export CVS_RSH=ssh
13
14 # Update/expand smeserver cvs
15 cd /etc/pootle/cvs/smeserver
16 for pkg in */sme7 anaconda/sme8
17 do
18 make -C $pkg clean &> /dev/null
19 done
20 cvs update -dPA > /dev/null
21 for pkg in */sme7 anaconda/sme8
22 do
23 make -C $pkg prep &> /dev/null
24 done
25
26 # Update/expand smecontribs cvs
27 cd /etc/pootle/cvs/smecontribs
28 for pkg in */contribs7
29 do
30 make -C $pkg clean &> /dev/null
31 done
32 cvs update -dPA > /dev/null
33 for pkg in */contribs7
34 do
35 make -C $pkg prep &> /dev/null
36 done
37
38 cd /etc/pootle/tmp
39
40 #==========================================================
41
42 # Take server down to prevent translation issues
43 killall PootleServer
44
45 #==========================================================
46
47 # Update anaconda templates
48 anacondatmpl > anaconda.pot
49 diffmv anaconda.pot /etc/pootle/po/sme7bc/templates/anaconda.pot
50
51 # Update console templates
52 potempl $(find /etc/pootle/cvs/smeserver/e-smith-quota/ -type f -name adminQuotaSummary.tmpl) > adminQuotaSummary.tmpl.pot
53 diffmv adminQuotaSummary.tmpl.pot /etc/pootle/po/sme7bc/templates/adminQuotaSummary.tmpl.pot
54 potempl $(find /etc/pootle/cvs/smeserver/e-smith-backup/ -type f -name do_backup -o -regex '.*/crontab/backup') > backup.pot
55 diffmv backup.pot /etc/pootle/po/sme7bc/templates/backup.pot
56 potempl $(find /etc/pootle/cvs/smeserver/e-smith-manager/ -type f -name 25Copyright) > foot.tmpl.pot
57 diffmv foot.tmpl.pot /etc/pootle/po/sme7bc/templates/foot.tmpl.pot
58 potempl $(find /etc/pootle/cvs/smeserver/ -type f -regex '.*/e-?smith/console.*') > server-console.pot
59 diffmv server-console.pot /etc/pootle/po/sme7bc/templates/server-console.pot
60 potempl $(find /etc/pootle/cvs/smeserver/e-smith-quota/ -type f -name userOverQuota.tmpl) > userOverQuota.tmpl.pot
61 diffmv userOverQuota.tmpl.pot /etc/pootle/po/sme7bc/templates/userOverQuota.tmpl.pot
62
63 # Update panel templates
64 for pkg in $(find /etc/pootle/cvs/smeserver/*/*7/*/root/etc/e-smith/locale/en-us/ -type f -print)
65 do
66 xmltempl $pkg "SME Panels"
67 diffcp /etc/pootle/templates/$(basename $pkg).pot /etc/pootle/po/sme7bp/templates/$(basename $pkg).pot
68 done
69
70 # Update contrib panel templates
71 for pkg in $(find /etc/pootle/cvs/smecontribs/*/*7/*/root/etc/e-smith/locale/en-us/ -type f -print)
72 do
73 xmltempl $pkg "Contrib Panels"
74 diffcp /etc/pootle/templates/$(basename $pkg).pot /etc/pootle/po/sme7cp/templates/$(basename $pkg).pot
75 done
76
77 #==========================================================
78
79 # Apply templates to languages
80 for lang in $(ls -I templates /etc/pootle/po/sme* | grep '[[:alpha:]]$' | sort -u)
81 do
82 # Create error compendium to assist translators
83 pocompendium -e errors-$lang.po -d /etc/pootle/po/sme*/$lang
84 sed -i '0,/^$/d' errors-$lang.po
85 chmod 644 errors-$lang.po
86 diffmv errors-$lang.po /var/www/html/errors/errors-$lang.po
87
88 # Create compendium to assist translations
89 pocompendium -c /etc/pootle/tmp/compendium-$lang.po -d /etc/pootle/po/*/$lang
90
91 # Use compendium to migrate each project to new template
92 for proj in $(ls -d /etc/pootle/po/sme*/$lang | sed 's@.*/\([^/]\+\)/[^/]\+$@\1@')
93 do
94 mkdir -p /etc/pootle/tmp/$proj/$lang
95 pomigrate2 -F -C=/etc/pootle/tmp/compendium-$lang.po -q --no-wrap --locale=$lang /etc/pootle/po/$proj/$lang /etc/pootle/tmp/$proj/$lang /etc/pootle/po/$proj/templates > /dev/null
96
97 # Ensure language is correct
98 sed -i "/msgid \"en-us\"/{N;s@msgstr \"[^\"]*\"@msgstr \"$lang\"@}" /etc/pootle/tmp/$proj/$lang/*
99
100 # Generate translation memory for panels
101 updatetm --progress none -c 4 -i /etc/pootle/tmp/$proj/$lang -t /etc/pootle/tmp/compendium-$lang.po -o /etc/pootle/tmp/$proj/$lang
102 done
103 done
104
105 # Set package name/version in new po files
106 sed -i 's@Project-Id-Version.*\\n@Project-Id-Version: SME Console\\n@' /etc/pootle/tmp/sme7bc/*/*.po
107 sed -i 's@Project-Id-Version.*\\n@Project-Id-Version: SME Anadonda\\n@' /etc/pootle/tmp/sme7bc/*/anaconda.po
108 sed -i 's@Project-Id-Version.*\\n@Project-Id-Version: SME Panels\\n@' /etc/pootle/tmp/sme7bp/*/*.po
109 sed -i 's@Project-Id-Version.*\\n@Project-Id-Version: Contrib Panels\\n@' /etc/pootle/tmp/sme7cp/*/*.po
110
111 # Move files that have changed
112 for chk in $(find /etc/pootle/tmp/sme* -type f)
113 do
114 diffmv $chk $(echo $chk | sed 's@/tmp/@/po/@')
115 done
116
117 #==========================================================
118
119 # Recalculate stats and restart server
120 cd /etc/pootle
121 PootleServer --refreshstats &> /dev/null
122 nohup PootleServer --servertype threaded >> /var/log/pootle.log 2>&1 &
123
124 #==========================================================
125
126 cd /etc/pootle/tmp
127
128 # Build diffs for languages
129 for lang in $(ls /etc/pootle/po/sme7bp -I templates)
130 do
131 # Build anaconda files
132 mkdir -p /var/www/html/anaconda/sme7/$lang/LC_MESSAGES
133 anacondagen sme7 $lang > /var/www/html/anaconda/sme7/$lang/LC_MESSAGES/anaconda.mo
134 [ -s /var/www/html/anaconda/sme7/$lang/LC_MESSAGES/anaconda.mo ] || rm -rf /var/www/html/anaconda/sme7/$lang
135
136 mkdir -p /var/www/html/anaconda/sme8/$lang/LC_MESSAGES
137 anacondagen sme8 $lang > /var/www/html/anaconda/sme8/$lang/LC_MESSAGES/anaconda.mo
138 [ -s /var/www/html/anaconda/sme8/$lang/LC_MESSAGES/anaconda.mo ] || rm -rf /var/www/html/anaconda/sme8/$lang
139
140 # Build console files
141 pkgname=$(ls -d /etc/pootle/cvs/smeserver/smeserver-locale/*7/*/root | cut -d/ -f8)
142 mkdir -p ${pkgname}.update/po/$lang
143 for pkg in $(ls /etc/pootle/po/sme7bc/templates/ -I anaconda.pot | sed 's@\.pot@\.po@')
144 do
145 msgcat -F --no-wrap /etc/pootle/po/sme7bc/$lang/$pkg \
146 | grep -v 'Project-Id-Version\|Report-Msgid-Bugs-To\|POT-Creation-Date\|PO-Revision-Date\|Last-Translator\|Language-Team\|X-Generator' \
147 | sed '0,/msgid ""/{/^#/d};/^#,/d' \
148 > ${pkgname}.update/po/$lang/$pkg
149 done
150 done
151
152 # Build translated xml files
153 for pkg in $(ls /etc/pootle/po/sme7*p/templates/ | sed -n 's@\.pot@@p')
154 do
155 pkgname=$(find /etc/pootle/cvs/smecontribs/*/*7/*/root/etc/e-smith/locale/en-us -name $pkg | cut -d/ -f8)
156 if [ -z "$pkgname" ]
157 then
158 if [ -z "$(find /etc/pootle/cvs/smeserver/*/*7/*/root/etc/e-smith/locale/en-us -name $pkg)" ]
159 then
160 echo -e "\n *** Can't find package for $pkg ***\n"
161 continue
162 fi
163 pkgname=$(ls -d /etc/pootle/cvs/smeserver/smeserver-locale/*7/*/root | cut -d/ -f8)
164 else
165 mkdir -p ${pkgname}.update/$(localedir en-us $pkg)
166 cat /etc/pootle/templates/$pkg.orig \
167 | perl -pe 's@_AMP_@&@g;s@_{_@<@g;s@_}_@>@g' \
168 > ${pkgname}.update/$(localedir en-us $pkg)/$pkg
169 fi
170 for lang in $(ls /etc/pootle/po/sme7bp -I templates)
171 do
172 mkdir -p ${pkgname}.update/$(localedir $lang $pkg)
173 xmlgen /etc/pootle/po/sme7*p/$lang/${pkg}.po \
174 > ${pkgname}.update/$(localedir $lang $pkg)/$pkg
175 done
176 done
177
178 # Build xml diffs
179 for pkg in $(ls -d *.update | sed 's@.update$@@')
180 do
181 orig=/etc/pootle/cvs/sme*/*/*7/$pkg/root/etc/e-smith/locale
182 rm /var/www/html/patches/$(echo $pkg | sed 's/-[^-]\+$//')-*-locale-*.patch
183 diff -ruN $orig $pkg.update/root/etc/e-smith/locale \
184 | sed 's@^\(---\|+++\) [^ ]\+/\([^/]\+/root/.*\)@\1 \2@;/^diff -ruN/d' \
185 > /var/www/html/patches/$pkg-locale-$(date +%F).patch
186 done
187
188 # Build console diffs
189 pkg=$(ls -d smeserver-locale-* | sed 's@.update$@@')
190 orig=/etc/pootle/cvs/smeserver/smeserver-locale/*7/$pkg/po
191 rm /var/www/html/patches/$(echo $pkg | sed 's/-[^-]\+$//')-*-locale-*.patch
192 diff -ruN $orig $pkg.update/po \
193 | sed 's@^\(---\|+++\) [^ ]\+/\([^/]\+/po/.*\)@\1 \2@;/^diff -ruN/d' \
194 >> /var/www/html/patches/$pkg-locale-$(date +%F).patch
195
196 ## cd /etc/pootle/tmp
197 ##
198 ## # Build diffs for languages
199 ## rm -f /var/www/html/patches/smeserver-locale-all-*.patch /var/www/html/patches/contribs/*
200 ## for lang in $(ls /etc/pootle/po/sme7bp -I templates)
201 ## do
202 ## # Remove previous patches
203 ## rm -f /var/www/html/patches/smeserver-locale-$lang-*.patch
204 ##
205 ## # Build anaconda files
206 ## mkdir -p /var/www/html/anaconda/sme7/$lang/LC_MESSAGES
207 ## anacondagen sme7 $lang > /var/www/html/anaconda/sme7/$lang/LC_MESSAGES/anaconda.mo
208 ## [ -s /var/www/html/anaconda/sme7/$lang/LC_MESSAGES/anaconda.mo ] || rm -rf /var/www/html/anaconda/sme7/$lang
209 ##
210 ## mkdir -p /var/www/html/anaconda/sme8/$lang/LC_MESSAGES
211 ## anacondagen sme8 $lang > /var/www/html/anaconda/sme8/$lang/LC_MESSAGES/anaconda.mo
212 ## [ -s /var/www/html/anaconda/sme8/$lang/LC_MESSAGES/anaconda.mo ] || rm -rf /var/www/html/anaconda/sme8/$lang
213 ##
214 ## # Build console diffs
215 ## mkdir -p pootleupdate/po/$lang
216 ## for pkg in $(ls /etc/pootle/po/sme7bc/templates/ -I anaconda.pot | sed 's@\.pot@\.po@')
217 ## do
218 ## msgcat -F --no-wrap /etc/pootle/po/sme7bc/$lang/$pkg \
219 ## | grep -v 'Project-Id-Version\|Report-Msgid-Bugs-To\|POT-Creation-Date\|PO-Revision-Date\|Last-Translator\|Language-Team\|X-Generator' \
220 ## | sed '0,/msgid ""/{/^#/d}' \
221 ## > pootleupdate/po/$lang/$pkg
222 ## if [ -f /etc/pootle/cvs/smeserver/smeserver-locale/*/*/po/$lang/$pkg ]
223 ## then
224 ## diff -u /etc/pootle/cvs/smeserver/smeserver-locale/*/*/po/$lang/$pkg pootleupdate/po/$lang/$pkg \
225 ## | sed 's@/etc/pootle/cvs/smeserver/smeserver-locale/@@' \
226 ## >> /var/www/html/patches/smeserver-locale-$lang-$(date +%F).patch
227 ## else
228 ## diff -u /dev/null pootleupdate/po/$lang/$pkg >> /var/www/html/patches/smeserver-locale-$lang-$(date +%F).patch
229 ## fi
230 ## done
231 ##
232 ## # Build panel diffs
233 ## mkdir -p pootleupdate/{$(localedir $lang general),$(localedir $lang userpassword),$(localedir $lang other)}
234 ## for pkg in $(ls /etc/pootle/po/sme7bp/templates/ | sed 's@\.pot@@')
235 ## do
236 ## match=$(find /etc/pootle/cvs/smeserver/ -type f -regex ".*/e-smith/locale/$lang/.*/$pkg")
237 ## xmlgen /etc/pootle/po/sme7bp/$lang/$pkg.po > pootleupdate/$(localedir $lang $pkg)/$pkg
238 ## diff -u ${match:-/dev/null} pootleupdate/$(localedir $lang $pkg)/$pkg \
239 ## | sed 's@^\(---\|+++\) [^ ]\+/\([^/]\+/root/.*\)@\1 \2@' \
240 ## >> /var/www/html/patches/smeserver-locale-$lang-$(date +%F).patch
241 ## done
242 ##
243 ## # Build contrib diffs
244 ## for pkg in $(ls /etc/pootle/po/sme7cp/templates/ | sed 's@\.pot@@')
245 ## do
246 ## match=$(find /etc/pootle/cvs/smecontribs/ -type f -regex ".*/e-smith/locale/$lang/.*/$pkg")
247 ## pkgname=$(find /etc/pootle/cvs/smecontribs/ -type f -regex ".*/e-smith/locale/en-us/.*/$pkg" | sed 's@.*/\([^/]\+\)/root/.*@\1@')
248 ## if [ ! -z "$pkgname" ]
249 ## then
250 ## xmlgen /etc/pootle/po/sme7cp/$lang/$pkg.po > pootleupdate/$(localedir $lang $pkg)/$pkg
251 ## diff -u ${match:-/dev/null} pootleupdate/$(localedir $lang $pkg)/$pkg \
252 ## | sed 's@^\(---\|+++\) [^ ]\+/\([^/]\+/root/.*\)@\1 \2@' \
253 ## >> /var/www/html/patches/contribs/$pkgname-locale-$(date +%F).patch
254 ## fi
255 ## done
256 ## done
257 ## cat /var/www/html/patches/smeserver-locale-*-$(date +%F).patch > /var/www/html/patches/smeserver-locale-all-$(date +%F).patch

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed