Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.2
desktop-translations
PREPARE_PACKAGE
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File PREPARE_PACKAGE of Package desktop-translations
#!/bin/bash test -f desktop-translations.spec || { "cwd must contain desktop-translations.spec"; exit 1; } if test -d "$MY_LCN_CHECKOUT"; then echo "Updating $MY_LCN_CHECKOUT" svn up $MY_LCN_CHECKOUT else echo "No \$MY_LCN_CHECKOUT set, will checkout temporarly" svn export https://svn.berlios.de/svnroot/repos/opensuse-i18n/trunk/lcn export MY_LCN_CHECKOUT=$PWD/lcn fi rm -rf po mkdir po for file in $MY_LCN_CHECKOUT/*/po/update-desktop-files*.po; do lang=`echo $file | sed -e "s,/po/up.*,,; s,.*/,,"` echo $file test -d po/$lang || mkdir po/$lang # package valid files only msgfmt -o /dev/null --check $file || { rmdir po/$lang continue } # cp $file po/$lang/entries.po # instead of copying, convert to the old inline format # with the first awk, filter "\n" and "\ " in translations # (msgfilter does not work for me in this case) msgattrib -o - --width=1000 --no-obsolete $file | awk '/^msgctxt/ { body = 1;print;next} body == 1 { sub(/\\n/, " ") sub(/\\ /, " ") print;next} {print}' | awk '/^msgctxt/ { body = 1 ctxt=gensub(/msgctxt \"(.+)\"/, "\\1", "g") gsub(/&/, "\\\\&", ctxt) next} /^msgid/ && body == 1 { sub(/msgid \"/, "&" ctxt ": ") print next} {print} ' > po/$lang/entries.po.new msgfmt po/$lang/entries.po.new -o po/$lang/entries.mo || exit # *-conflicts files are often empty; thus continue and avoid a # confusing shell error message [ -f po/$lang/entries.mo ] || continue msgunfmt --no-wrap po/$lang/entries.mo | \ grep -v '^"[A-Z][^ ]*: ' | grep '[^\][\]n"' && exit 1 rm po/$lang/entries.mo if test -f po/$lang/entries.po; then msgcat -o po/$lang/entries.po --use-first po/$lang/entries.po po/$lang/entries.po.new rm po/$lang/entries.po.new else mv po/$lang/entries.po.new po/$lang/entries.po fi done tar=desktop-translations.tar.bz2 rm -f $tar tar cfj $tar po && echo $tar done rm -rf po exit 0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor