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
00034 from __future__ import print_function
00035
00036 from optparse import OptionParser
00037
00038 import os
00039 import sys
00040 import traceback
00041 import genmsg
00042 import genmsg.command_line
00043
00044 from genmsg import MsgGenerationException
00045 from . generate import generate_msg, generate_srv
00046
00047 def usage(progname):
00048 print("%(progname)s file(s)"%vars())
00049
00050 def genmain(argv, progname):
00051 parser = OptionParser("%s file"%(progname))
00052 parser.add_option('-p', dest='package')
00053 parser.add_option('-o', dest='outdir')
00054 parser.add_option('-I', dest='includepath', action='append')
00055 options, args = parser.parse_args(argv)
00056 try:
00057 if len(args) < 2:
00058 parser.error("please specify args")
00059 if not os.path.exists(options.outdir):
00060
00061
00062
00063 try:
00064 os.makedirs(options.outdir)
00065 except OSError as e:
00066 if not os.path.exists(options.outdir):
00067 raise
00068 search_path = genmsg.command_line.includepath_to_dict(options.includepath)
00069 filename = args[1]
00070 if filename.endswith('.msg'):
00071 retcode = generate_msg(options.package, args[1:], options.outdir, search_path)
00072 else:
00073 retcode = generate_srv(options.package, args[1:], options.outdir, search_path)
00074 except genmsg.InvalidMsgSpec as e:
00075 print("ERROR: ", e, file=sys.stderr)
00076 retcode = 1
00077 except MsgGenerationException as e:
00078 print("ERROR: ", e, file=sys.stderr)
00079 retcode = 2
00080 except Exception as e:
00081 traceback.print_exc()
00082 print("ERROR: ",e)
00083 retcode = 3
00084 sys.exit(retcode or 0)