Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 from __future__ import print_function
00034
00035 from optparse import OptionParser
00036
00037 import os
00038 import sys
00039 import traceback
00040 import genmsg
00041 import genmsg.command_line
00042
00043 from genmsg import MsgGenerationException
00044 from generate_initpy import write_modules
00045
00046 def usage(progname):
00047 print("%(progname)s file(s)"%vars())
00048
00049 def genmain(argv, progname, gen):
00050 parser = OptionParser("%s file"%(progname))
00051 parser.add_option('--initpy', dest='initpy', action='store_true',
00052 default=False)
00053 parser.add_option('-p', dest='package')
00054 parser.add_option('-o', dest='outdir')
00055 parser.add_option('-I', dest='includepath', action='append')
00056 options, args = parser.parse_args(argv)
00057 try:
00058 if options.initpy:
00059 if options.outdir:
00060 retcode = write_modules(options.outdir)
00061 else:
00062 parser.error("Missing args")
00063 else:
00064 if len(args) < 2:
00065 parser.error("please specify args")
00066 if not os.path.exists(options.outdir):
00067
00068
00069
00070 try:
00071 os.makedirs(options.outdir)
00072 except OSError as e:
00073 if not os.path.exists(options.outdir):
00074 raise
00075 search_path = genmsg.command_line.includepath_to_dict(options.includepath)
00076 retcode = gen.generate_messages(options.package, args[1:], options.outdir, search_path)
00077 except genmsg.InvalidMsgSpec as e:
00078 print("ERROR: ", e, file=sys.stderr)
00079 retcode = 1
00080 except MsgGenerationException as e:
00081 print("ERROR: ", e, file=sys.stderr)
00082 retcode = 2
00083 except Exception as e:
00084 traceback.print_exc()
00085 print("ERROR: ",e)
00086 retcode = 3
00087 sys.exit(retcode or 0)