/[smeserver]/builds_bin/update_templates
ViewVC logotype

Diff of /builds_bin/update_templates

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

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


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

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