--- builds_bin/genpatches 2009/03/05 21:41:33 1.7 +++ builds_bin/genpatches 2010/03/02 21:16:48 1.8 @@ -1,96 +1,83 @@ #!/bin/bash # Functions -. /etc/pootle/bin/functions +. /var/lib/pootle/bin/functions # Clean up tmp dir -rm -rf /etc/pootle/tmp -mkdir -p /etc/pootle/tmp /var/www/html/{patches,errors,anaconda} +rm -rf /var/lib/pootle/tmp +mkdir -p /var/lib/pootle/tmp/ /var/www/html/{patches,errors,anaconda} #========================================================== -cd /etc/pootle/tmp +cd /var/lib/pootle/tmp # Build diffs for languages -for lang in $(ls /etc/pootle/po/sme7bp -I templates) +for pkg in $(ls /var/lib/pootle/po/{sme,contribs}[0-9]/templates/ | sed -n 's@\.pot@@p' | sort -u) do - # Build anaconda files - mkdir -p /var/www/html/anaconda/sme7/$lang/LC_MESSAGES - anacondagen sme7 $lang > /var/www/html/anaconda/sme7/$lang/LC_MESSAGES/anaconda.mo - [ -s /var/www/html/anaconda/sme7/$lang/LC_MESSAGES/anaconda.mo ] || rm -rf /var/www/html/anaconda/sme7/$lang - - mkdir -p /var/www/html/anaconda/sme8/$lang/LC_MESSAGES - anacondagen sme8 $lang > /var/www/html/anaconda/sme8/$lang/LC_MESSAGES/anaconda.mo - [ -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 -done - -# Build translated xml files -for pkg in $(ls /etc/pootle/po/sme7*p/templates/ -I sme7admin.pot | sed -n 's@\.pot@@p') -do - pkgname=$(find /etc/pootle/cvs/smecontribs/*/*7/*/root/etc/e-smith/locale/en-us -name $pkg | cut -d/ -f8) - if [ -z "$pkgname" ] + pkgs=$(find /var/lib/pootle/cvs/*/*/*/*/root/etc/e-smith/locale/en-us -name $pkg -not -regex '.*\+ldap/.*') + if [ -z "$pkgs" ] then - if [ -z "$(find /etc/pootle/cvs/smeserver/*/*7/*/root/etc/e-smith/locale/en-us -name $pkg)" ] - then - echo -e "\n *** Can't find package for $pkg ***\n" - continue - fi - pkgname=$(ls -d /etc/pootle/cvs/smeserver/smeserver-locale/*7/*/root | cut -d/ -f8) + if [ $pkg == "anaconda" ] + then + ls /var/lib/pootle/po/*/*/$pkg.po | cut -d/ --output-delimiter " " -f6,7 | while read ver lang + do + mkdir -p /var/www/html/anaconda/$ver/$lang/LC_MESSAGES + anacondagen $ver $lang > /var/www/html/anaconda/$ver/$lang/LC_MESSAGES/anaconda.mo + [ -s /var/www/html/anaconda/$ver/$lang/LC_MESSAGES/anaconda.mo ] || rm -rf /var/www/html/anaconda/$ver/$lang + done + else + pkgs=$(ls -d /var/lib/pootle/cvs/*/smeserver-$pkg/*/*/root 2> /dev/null) + [ -z "$pkgs" ] && pkgs=$(ls -d /var/lib/pootle/cvs/*/smeserver-locale/*/*/root) + + echo "$pkgs" | cut -d/ --output-delimiter " " -f8,9 | while read ver pkgname + do + for lang in $(ls -I templates /var/lib/pootle/po/$ver/ 2> /dev/null | grep '[[:alpha:]]$' | sort -u) + do + mkdir -p diff/$ver/${pkgname}.update/po/$lang + msgcat -F --no-wrap /var/lib/pootle/po/$ver/$lang/${pkg}.po \ + | grep -v 'Id-Version\|Report-Msgid-Bugs-To\|POT-Creation-Date\|PO-Revision-Date\|Last-Translator\|Language-Team\|X-Generator' \ + | sed '0,/msgid ""/{/^#/d};/^#,/d;s@^\(#: \)[^/]\+/root@\1root@' \ + > diff/$ver/${pkgname}.update/po/$lang/${pkg/backup-console/backup}.po + done + done + fi else - mkdir -p ${pkgname}.update/$(localedir en-us $pkg) - cat /etc/pootle/templates/$pkg.orig \ - | perl -pe 's@_AMP_@&@g;s@_{_@<@g;s@_}_@>@g' \ - > ${pkgname}.update/$(localedir en-us $pkg)/$pkg + echo "$pkgs" | grep -qv '/contribs[0-9]/' && pkgs=$(echo "$pkgs" | grep '/contribs[0-9]/'; ls -d /var/lib/pootle/cvs/*/smeserver-locale/*/*/root) + echo "$pkgs" | cut -d/ --output-delimiter " " -f8,9 | while read ver pkgname + do + if echo $ver | grep -q contribs + then + mkdir -p diff/$ver/${pkgname}.update/$(localedir en-us $pkg) + cat /var/lib/pootle/templates/$ver/$pkg.orig \ + | perl -pe 's@_AMP_@&@g;s@_{_@<@g;s@_}_@>@g' \ + > diff/$ver/${pkgname}.update/$(localedir en-us $pkg)/$pkg + fi + for lang in $(ls -I templates /var/lib/pootle/po/$ver/ 2> /dev/null | grep '[[:alpha:]]$' | sort -u) + do + mkdir -p diff/$ver/${pkgname}.update/$(localedir $lang $pkg) + xmlgen $ver /var/lib/pootle/po/$ver/$lang/${pkg}.po \ + > diff/$ver/${pkgname}.update/$(localedir $lang $pkg)/$pkg + done + done 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 done -# Build xml diffs -for pkg in $(ls -d *.update | sed 's@.update$@@') +# Build diffs +ls -d diff/*/* | sed 's@.update$@@' | cut -d/ --output-delimiter " " -f2,3 | while read ver pkg do - rm -f /var/www/html/patches/$(echo $pkg | sed 's/-[^-]\+$//')-*-locale-*.patch - [ -d $pkg.update/root/etc/e-smith/locale ] || continue - orig=/etc/pootle/cvs/sme*/*/*7/$pkg/root/etc/e-smith/locale - diff -ruN $orig $pkg.update/root/etc/e-smith/locale \ - | sed 's@^\(---\|+++\) [^ ]\+/\([^/]\+/root/.*\)@\1 \2@;/^diff -ruN/d' \ - > /var/www/html/patches/$pkg-locale-$(date +%F).patch + mkdir -p /var/www/html/patches/$ver + rm -f /var/www/html/patches/$ver/$(echo $pkg | sed 's/-[^-]\+$//')-*-locale-*.patch + if [ -d "diff/$ver/$pkg.update/root" ] + then + diff -ruN {/var/lib/pootle/cvs/*/*/$ver/$pkg,diff/$ver/$pkg.update}/root/etc/e-smith/locale \ + | sed 's@^\(---\|+++\) [^ ]\+/\([^/]\+/root/.*\)@\1 \2@;/^diff -ruN/d' \ + >> /var/www/html/patches/$ver/$pkg-locale-$(date +%F).patch + fi + if [ -d "diff/$ver/$pkg.update/po" ] + then + diff -ruN {/var/lib/pootle/cvs/*/*/$ver/$pkg,diff/$ver/$pkg.update}/po \ + | sed 's@^\(---\|+++\) [^ ]\+/\([^/]\+/po/.*\)@\1 \2@;/^diff -ruN/d' \ + >> /var/www/html/patches/$ver/$pkg-locale-$(date +%F).patch + fi done -# Build console diffs -pkg=$(ls -d smeserver-locale-* | sed 's@.update$@@') -orig=/etc/pootle/cvs/smeserver/smeserver-locale/*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 - -# Build sme7admin diff -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 -