/[smeserver]/builds_bin/update_templates
ViewVC logotype

Annotation of /builds_bin/update_templates

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


Revision 1.10 - (hide annotations) (download)
Mon Oct 26 22:02:53 2009 UTC (14 years, 6 months ago) by slords
Branch: MAIN
Changes since 1.9: +14 -10 lines
Tool updates

1 slords 1.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 slords 1.8 for pkg in */sme7 anaconda/sme8 booty/sme8
17 slords 1.1 do
18     make -C $pkg clean &> /dev/null
19     done
20     cvs update -dPA > /dev/null
21 slords 1.8 for pkg in */sme7 anaconda/sme8 booty/sme8
22 slords 1.1 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 slords 1.10 # Update anaconda template
48 slords 1.1 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 slords 1.6 # Update sme7admin template
71 slords 1.5 potempl /etc/pootle/cvs/smecontribs/smeserver-sme7admin/*/*/root/{etc/e-smith/web/functions/sme7admin,usr/bin/sme7admind} > sme7admin.pot
72     diffmv sme7admin.pot /etc/pootle/po/sme7cp/templates/sme7admin.pot
73    
74 slords 1.1 # Update contrib panel templates
75     for pkg in $(find /etc/pootle/cvs/smecontribs/*/*7/*/root/etc/e-smith/locale/en-us/ -type f -print)
76     do
77     xmltempl $pkg "Contrib Panels"
78     diffcp /etc/pootle/templates/$(basename $pkg).pot /etc/pootle/po/sme7cp/templates/$(basename $pkg).pot
79     done
80    
81     #==========================================================
82    
83     # Apply templates to languages
84     for lang in $(ls -I templates /etc/pootle/po/sme* | grep '[[:alpha:]]$' | sort -u)
85     do
86     # Create compendium to assist translations
87     pocompendium -c /etc/pootle/tmp/compendium-$lang.po -d /etc/pootle/po/*/$lang
88    
89     # Use compendium to migrate each project to new template
90     for proj in $(ls -d /etc/pootle/po/sme*/$lang | sed 's@.*/\([^/]\+\)/[^/]\+$@\1@')
91     do
92     mkdir -p /etc/pootle/tmp/$proj/$lang
93     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
94    
95     # Ensure language is correct
96     sed -i "/msgid \"en-us\"/{N;s@msgstr \"[^\"]*\"@msgstr \"$lang\"@}" /etc/pootle/tmp/$proj/$lang/*
97    
98     # Generate translation memory for panels
99     updatetm --progress none -c 4 -i /etc/pootle/tmp/$proj/$lang -t /etc/pootle/tmp/compendium-$lang.po -o /etc/pootle/tmp/$proj/$lang
100     done
101     done
102    
103     # Set package name/version in new po files
104     sed -i 's@Project-Id-Version.*\\n@Project-Id-Version: SME Console\\n@' /etc/pootle/tmp/sme7bc/*/*.po
105     sed -i 's@Project-Id-Version.*\\n@Project-Id-Version: SME Anadonda\\n@' /etc/pootle/tmp/sme7bc/*/anaconda.po
106     sed -i 's@Project-Id-Version.*\\n@Project-Id-Version: SME Panels\\n@' /etc/pootle/tmp/sme7bp/*/*.po
107     sed -i 's@Project-Id-Version.*\\n@Project-Id-Version: Contrib Panels\\n@' /etc/pootle/tmp/sme7cp/*/*.po
108    
109     # Move files that have changed
110     for chk in $(find /etc/pootle/tmp/sme* -type f)
111     do
112     diffmv $chk $(echo $chk | sed 's@/tmp/@/po/@')
113     done
114    
115 slords 1.10 # Copy po files so we can create error reports
116     rsync -amR --include '*/' --include '*.po' --exclude '*' /etc/pootle/po/./sme*/ /etc/pootle/tmp/errors/
117     find /etc/pootle/tmp/errors/ -type f -exec sed -i '/^#~/d' {} \+
118 slords 1.9
119 slords 1.1 #==========================================================
120    
121     # Recalculate stats and restart server
122     cd /etc/pootle
123     PootleServer --refreshstats &> /dev/null
124 slords 1.5 nohup PootleServer --prefsfile /etc/pootle/pootle.prefs >> /var/log/pootle.log 2>&1 &
125 slords 1.1
126     #==========================================================
127    
128     cd /etc/pootle/tmp
129    
130 slords 1.10 # Create error compendium to assist translators
131     for lang in $(ls /etc/pootle/tmp/errors/sme* | grep '[[:alpha:]]$' | sort -u)
132     do
133     pocompendium -e errors-$lang.po -d /etc/pootle/tmp/errors/sme*/$lang
134     sed -i '0,/^$/d;/^#~/d' errors-$lang.po
135     sed -i ':a;/^\n*$/{$d;N;ba;}' errors-$lang.po
136     chmod 644 errors-$lang.po
137     diffmv errors-$lang.po /var/www/html/errors/errors-$lang.po
138     done
139    
140 slords 1.1 # Build diffs for languages
141     for lang in $(ls /etc/pootle/po/sme7bp -I templates)
142     do
143     # Build anaconda files
144     mkdir -p /var/www/html/anaconda/sme7/$lang/LC_MESSAGES
145     anacondagen sme7 $lang > /var/www/html/anaconda/sme7/$lang/LC_MESSAGES/anaconda.mo
146     [ -s /var/www/html/anaconda/sme7/$lang/LC_MESSAGES/anaconda.mo ] || rm -rf /var/www/html/anaconda/sme7/$lang
147    
148     mkdir -p /var/www/html/anaconda/sme8/$lang/LC_MESSAGES
149     anacondagen sme8 $lang > /var/www/html/anaconda/sme8/$lang/LC_MESSAGES/anaconda.mo
150     [ -s /var/www/html/anaconda/sme8/$lang/LC_MESSAGES/anaconda.mo ] || rm -rf /var/www/html/anaconda/sme8/$lang
151    
152     # Build console files
153     pkgname=$(ls -d /etc/pootle/cvs/smeserver/smeserver-locale/*7/*/root | cut -d/ -f8)
154     mkdir -p ${pkgname}.update/po/$lang
155 slords 1.5 for pkg in $(ls /etc/pootle/po/sme7bc/templates/ -I anaconda.pot | sed -n 's@\.pot@\.po@p')
156 slords 1.1 do
157     msgcat -F --no-wrap /etc/pootle/po/sme7bc/$lang/$pkg \
158     | grep -v 'Project-Id-Version\|Report-Msgid-Bugs-To\|POT-Creation-Date\|PO-Revision-Date\|Last-Translator\|Language-Team\|X-Generator' \
159     | sed '0,/msgid ""/{/^#/d};/^#,/d' \
160     > ${pkgname}.update/po/$lang/$pkg
161     done
162 slords 1.5
163     # Build sme7admin file
164     pkgname=$(ls -d /etc/pootle/cvs/smecontribs/smeserver-sme7admin/*7/*/root | cut -d/ -f8)
165     mkdir -p ${pkgname}.update/po/$lang
166     msgcat -F --no-wrap /etc/pootle/po/sme7cp/$lang/sme7admin.po \
167     | grep -v 'Project-Id-Version\|Report-Msgid-Bugs-To\|POT-Creation-Date\|PO-Revision-Date\|Last-Translator\|Language-Team\|X-Generator' \
168     | sed '0,/msgid ""/{/^#/d};/^#,/d' \
169     > ${pkgname}.update/po/$lang/sme7admin.po
170 slords 1.1 done
171    
172     # Build translated xml files
173 slords 1.5 for pkg in $(ls /etc/pootle/po/sme7*p/templates/ -I sme7admin.pot | sed -n 's@\.pot@@p')
174 slords 1.1 do
175     pkgname=$(find /etc/pootle/cvs/smecontribs/*/*7/*/root/etc/e-smith/locale/en-us -name $pkg | cut -d/ -f8)
176     if [ -z "$pkgname" ]
177     then
178     if [ -z "$(find /etc/pootle/cvs/smeserver/*/*7/*/root/etc/e-smith/locale/en-us -name $pkg)" ]
179     then
180     echo -e "\n *** Can't find package for $pkg ***\n"
181     continue
182     fi
183     pkgname=$(ls -d /etc/pootle/cvs/smeserver/smeserver-locale/*7/*/root | cut -d/ -f8)
184     else
185     mkdir -p ${pkgname}.update/$(localedir en-us $pkg)
186     cat /etc/pootle/templates/$pkg.orig \
187     | perl -pe 's@_AMP_@&@g;s@_{_@<@g;s@_}_@>@g' \
188     > ${pkgname}.update/$(localedir en-us $pkg)/$pkg
189     fi
190     for lang in $(ls /etc/pootle/po/sme7bp -I templates)
191     do
192     mkdir -p ${pkgname}.update/$(localedir $lang $pkg)
193     xmlgen /etc/pootle/po/sme7*p/$lang/${pkg}.po \
194     > ${pkgname}.update/$(localedir $lang $pkg)/$pkg
195     done
196     done
197    
198     # Build xml diffs
199     for pkg in $(ls -d *.update | sed 's@.update$@@')
200     do
201 slords 1.7 rm -f /var/www/html/patches/$(echo $pkg | sed 's/-[^-]\+$//')-*-locale-*.patch
202     [ -d $pkg.update/root/etc/e-smith/locale ] || continue
203 slords 1.1 orig=/etc/pootle/cvs/sme*/*/*7/$pkg/root/etc/e-smith/locale
204     diff -ruN $orig $pkg.update/root/etc/e-smith/locale \
205     | sed 's@^\(---\|+++\) [^ ]\+/\([^/]\+/root/.*\)@\1 \2@;/^diff -ruN/d' \
206     > /var/www/html/patches/$pkg-locale-$(date +%F).patch
207     done
208    
209     # Build console diffs
210     pkg=$(ls -d smeserver-locale-* | sed 's@.update$@@')
211     orig=/etc/pootle/cvs/smeserver/smeserver-locale/*7/$pkg/po
212     diff -ruN $orig $pkg.update/po \
213     | sed 's@^\(---\|+++\) [^ ]\+/\([^/]\+/po/.*\)@\1 \2@;/^diff -ruN/d' \
214     >> /var/www/html/patches/$pkg-locale-$(date +%F).patch
215    
216 slords 1.6 # Build sme7admin diff
217     pkg=$(ls -d smeserver-sme7admin-* | sed 's@.update$@@')
218     orig=/etc/pootle/cvs/smecontribs/smeserver-sme7admin/*7/$pkg/po
219     diff -ruN $orig $pkg.update/po \
220     | sed 's@^\(---\|+++\) [^ ]\+/\([^/]\+/po/.*\)@\1 \2@;/^diff -ruN/d' \
221     >> /var/www/html/patches/$pkg-locale-$(date +%F).patch
222    

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