diff --git a/branches/ucs-3.2/ucs-3.2-0/management/univention-management-console/dev/dh-umc-module-build b/branches/ucs-3.2/ucs-3.2-0/management/univention-management-console/dev/dh-umc-module-build index 7c9a914..85c55ab 100755 --- a/branches/ucs-3.2/ucs-3.2-0/management/univention-management-console/dev/dh-umc-module-build +++ b/branches/ucs-3.2/ucs-3.2-0/management/univention-management-console/dev/dh-umc-module-build @@ -2,7 +2,9 @@ # -*- coding: utf-8 -*- # # Univention Configuration Registry -# build UMC module +"""Helps installing UMC modules. It parses a RFC 822 file called +$(package).umc-modules and installs the specified components of a module +into the correct directories.""" # # Copyright 2011-2013 Univention GmbH # @@ -36,26 +38,17 @@ import sys from optparse import OptionParser import univention.debhelper as dh_ucs +import univention.dh_umc as dh_umc -try: - sys.path.insert( 0, './dev' ) - import dh_umc -except BaseException, e: - print 'warning:', str( e ) - import univention.dh_umc as dh_umc - -"""Helps installing UMC modules. It parses a RFC 822 file called -$(package).umc-modules and installs the specified components of a module -into the correct directories.""" -def do_package( package, core ): +def do_package(package, core): try: modules = dh_umc.read_modules( package, core ) except AttributeError, e: print >>sys.stderr, str( e ) sys.exit( 1 ) - if not options.core: + if not core: # build python PO files for module in modules: for po_file in module.python_po_files: @@ -76,11 +69,26 @@ def do_package( package, core ): dh_umc.create_mo_file( po_file ) -if __name__ == '__main__': +def main(): # parse all options - parser = OptionParser( usage = 'usage: %prog [--core]' ) - parser.add_option( '-c', '--core', action = 'store_true', dest = 'core', help = 'If specified modules without javascript and python code are excepted' ) + parser = OptionParser( + usage='usage: %prog [--core]', + description=sys.modules[__name__].__doc__.strip(), + ) + parser.add_option( + '-c', '--core', + action='store_true', dest='core', + help='If specified modules without javascript and python code are excepted') + + (options, args) = parser.parse_args() + + try: + for package in dh_ucs.binary_packages(): + do_package(package, options.core) + except dh_umc.UMC_Build_Error, ex: + print >> sys.stderr, ex + sys.exit(1) + - ( options, args ) = parser.parse_args() - for package in dh_ucs.binary_packages(): - do_package( package, options.core ) +if __name__ == '__main__': + main() diff --git a/branches/ucs-3.2/ucs-3.2-0/management/univention-management-console/dev/dh_umc.py b/branches/ucs-3.2/ucs-3.2-0/management/univention-management-console/dev/dh_umc.py index 13343a0..a695f98 100644 --- a/branches/ucs-3.2/ucs-3.2-0/management/univention-management-console/dev/dh_umc.py +++ b/branches/ucs-3.2/ucs-3.2-0/management/univention-management-console/dev/dh_umc.py @@ -86,6 +86,11 @@ Example: Icons: umc/icons """ + +class UMC_Build_Error(Exception): + pass + + class UMC_Module( dict ): def __init__( self, *args ): dict.__init__( self, *args ) @@ -244,11 +249,13 @@ def module_xml2po( module, po_file, language ): po.save( message_po ) if os.path.isfile( po_file ): - dh_ucs.doIt( 'msgmerge', '--update', '--sort-output', po_file, message_po ) + if dh_ucs.doIt('msgmerge', '--update', '--sort-output', po_file, message_po): + raise UMC_Build_Error("Error updating translation '%s'" % (po_file,)) if os.path.isfile( message_po ): os.unlink( message_po ) else: - dh_ucs.doIt( 'mv', message_po, po_file ) + if dh_ucs.doIt('mv', message_po, po_file): + raise UMC_Build_Error("Error moving translation '%s'" % (po_file,)) def create_po_file( po_file, package, files, language = 'python' ): """Create a PO file for a defined set of files""" @@ -258,20 +265,24 @@ def create_po_file( po_file, package, files, language = 'python' ): os.unlink( message_po ) if isinstance( files, basestring ): files = [ files ] - dh_ucs.doIt( 'xgettext', '--force-po', '--from-code=UTF-8', '--sort-output', '--package-name=%s' % package, '--msgid-bugs-address=packages@univention.de', '--copyright-holder=Univention GmbH', '--language', language, '-o', message_po, *files ) + if dh_ucs.doIt('xgettext', '--force-po', '--from-code=UTF-8', '--sort-output', '--package-name=%s' % package, '--msgid-bugs-address=packages@univention.de', '--copyright-holder=Univention GmbH', '--language', language, '-o', message_po, *files): + raise UMC_Build_Error("Error extracting translations '%s'" % (message_po,)) po = polib.pofile( message_po ) po.header = PO_HEADER po.metadata[ 'Content-Type' ] = 'text/plain; charset=UTF-8' po.save() if os.path.isfile( po_file ): - dh_ucs.doIt( 'msgmerge', '--update', '--sort-output', po_file, message_po ) + if dh_ucs.doIt('msgmerge', '--update', '--sort-output', po_file, message_po): + raise UMC_Build_Error("Error updating translation '%s'" % (po_file,)) if os.path.isfile( message_po ): os.unlink( message_po ) else: - dh_ucs.doIt( 'mv', message_po, po_file ) + if dh_ucs.doIt('mv', message_po, po_file): + raise UMC_Build_Error("Error moving translation '%s'" % (po_file,)) def create_mo_file( po_file ): - dh_ucs.doIt( 'msgfmt', '--check', '--output-file', po_file.replace( '.po', '.mo' ), po_file ) + if dh_ucs.doIt('msgfmt', '--check', '--output-file', po_file.replace('.po', '.mo'), po_file): + raise UMC_Build_Error("Error compiling translations '%s'" % (po_file,)) def create_json_file( po_file ): json_file = po_file.replace( '.po', '.json' ) @@ -283,4 +294,3 @@ def create_json_file( po_file ): json_fd.write( json.dumps( data ) ) json_fd.close() -