X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=tools%2Flttng-gen-tp;h=d54559a0405444d5184d3dbe8bdfa154db5c597b;hb=a4a9916ec83b43bd2ba0fb025706bcedc1deaaf4;hp=3f28534858b318ae326ffeac67beb5f2febc104b;hpb=db06a0a230324416a62f76bab75874065cd83e4e;p=lttng-ust.git diff --git a/tools/lttng-gen-tp b/tools/lttng-gen-tp old mode 100644 new mode 100755 index 3f285348..d54559a0 --- a/tools/lttng-gen-tp +++ b/tools/lttng-gen-tp @@ -35,8 +35,8 @@ class HeaderFile: #define TRACEPOINT_INCLUDE_FILE ./{headerFilename} #ifdef __cplusplus -#extern "C"{{ -#endif /*__cplusplus */ +extern "C"{{ +#endif /* __cplusplus */ #if !defined({includeGuard}) || defined(TRACEPOINT_HEADER_MULTI_READ) @@ -52,7 +52,7 @@ class HeaderFile: #ifdef __cplusplus }} -#endif /*__cplusplus */ +#endif /* __cplusplus */ """ def __init__(self, filename, template): @@ -158,9 +158,11 @@ class TemplateFile: self.text = f.read() #Remove # comments (from input and output file - self.text = re.sub("#.*$","",self.text,flags=re.MULTILINE) + removeComments = re.compile("#.*$",flags=re.MULTILINE) + self.text = removeComments.sub("",self.text) #Remove // comments - nolinecomment = re.sub("\/\/.*$","",self.text,flags=re.MULTILINE) + removeLineComment = re.compile("\/\/.*$",flags=re.MULTILINE) + nolinecomment = removeLineComment.sub("",self.text) #Remove all spaces and lines cleantext = re.sub("\s*","",nolinecomment) #Remove multine C style comments @@ -205,6 +207,8 @@ def main(argv=None): opts, args = getopt.gnu_getopt(argv[1:], "ho:a", ["help"]) except getopt.error, msg: raise Usage(msg) + if len(args) == 0: + raise Usage("No template file given") except Usage, err: print >>sys.stderr, err.msg @@ -254,28 +258,37 @@ def main(argv=None): # process arguments for arg in args: - tpl = TemplateFile(arg) - if doHeader: - if headerFilename: - curFilename = headerFilename - else: - curFilename = re.sub("\.tp$",".h",arg) - doth = HeaderFile(curFilename, tpl) - doth.write() - if doCFile: - if cFilename: - curFilename = cFilename - else: - curFilename = re.sub("\.tp$",".c",arg) - dotc = CFile(curFilename, tpl) - dotc.write() - if doObj: - if objFilename: - curFilename = objFilename - else: - curFilename = re.sub("\.tp$",".o",arg) - dotobj = ObjFile(curFilename, tpl) - dotobj.write() - + tpl = None + try: + tpl = TemplateFile(arg) + except IOError as args: + print "Cannot read input file " + args.filename + " " + args.strerror + return -1 + try: + if doHeader: + if headerFilename: + curFilename = headerFilename + else: + curFilename = re.sub("\.tp$",".h",arg) + doth = HeaderFile(curFilename, tpl) + doth.write() + if doCFile: + if cFilename: + curFilename = cFilename + else: + curFilename = re.sub("\.tp$",".c",arg) + dotc = CFile(curFilename, tpl) + dotc.write() + if doObj: + if objFilename: + curFilename = objFilename + else: + curFilename = re.sub("\.tp$",".o",arg) + dotobj = ObjFile(curFilename, tpl) + dotobj.write() + except IOError as args: + print "Cannot write output file " + args.filename + " " + args.strerror + return -1 + if __name__ == "__main__": sys.exit(main())