summaryrefslogtreecommitdiffstats
path: root/ppapi/generators/generator.py
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/generators/generator.py')
-rwxr-xr-xppapi/generators/generator.py53
1 files changed, 31 insertions, 22 deletions
diff --git a/ppapi/generators/generator.py b/ppapi/generators/generator.py
index b1ab0ee..4511cd9 100755
--- a/ppapi/generators/generator.py
+++ b/ppapi/generators/generator.py
@@ -5,6 +5,7 @@
import os
import sys
+import traceback
# Note: some of these files are imported to register cmdline options.
from idl_generator import Generator
@@ -15,33 +16,41 @@ from idl_c_header import HGen
from idl_gen_pnacl import PnaclGen
-def Main():
- args = sys.argv[1:]
+def Main(args):
# If no arguments are provided, assume we are trying to rebuild the
# C headers with warnings off.
- if not args:
- args = [
- '--wnone', '--cgen', '--range=start,end',
- '--pnacl', '--pnaclshim',
- '../native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c',
- ]
- current_dir = os.path.abspath(os.getcwd())
- script_dir = os.path.abspath(os.path.dirname(__file__))
- if current_dir != script_dir:
- print '\nIncorrect CWD, default run skipped.'
- print 'When running with no arguments set CWD to the scripts directory:'
- print '\t' + script_dir + '\n'
- print 'This ensures correct default paths and behavior.\n'
+ try:
+ if not args:
+ args = [
+ '--wnone', '--cgen', '--range=start,end',
+ '--pnacl', '--pnaclshim',
+ '../native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c',
+ ]
+ current_dir = os.path.abspath(os.getcwd())
+ script_dir = os.path.abspath(os.path.dirname(__file__))
+ if current_dir != script_dir:
+ print '\nIncorrect CWD, default run skipped.'
+ print 'When running with no arguments set CWD to the scripts directory:'
+ print '\t' + script_dir + '\n'
+ print 'This ensures correct default paths and behavior.\n'
+ return 1
+
+ filenames = ParseOptions(args)
+ ast = ParseFiles(filenames)
+ if ast.errors:
+ print 'Found %d errors. Aborting build.\n' % ast.errors
return 1
+ return Generator.Run(ast)
+ except SystemExit, ec:
+ print 'Exiting with %d' % ec.code
+ sys.exit(ec.code)
- filenames = ParseOptions(args)
- ast = ParseFiles(filenames)
- if ast.errors:
- print 'Found %d errors. Aborting build.\n' % ast.errors
- return 1
- return Generator.Run(ast)
+ except:
+ typeinfo, value, tb = sys.exc_info()
+ traceback.print_exception(typeinfo, value, tb)
+ print 'Called with: ' + ' '.join(sys.argv)
if __name__ == '__main__':
- sys.exit(Main())
+ sys.exit(Main(sys.argv[1:]))