/[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.8 - (hide annotations) (download)
Sun Jun 7 17:11:51 2009 UTC (15 years, 6 months ago) by slords
Branch: MAIN
Changes since 1.7: +2 -2 lines
Updates for cdrom.images changes

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

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