22from __future__ import print_function
33import json
44import os
5+ import errno
56from pathlib import Path
67
78# Convenience function for using template get_node
@@ -48,14 +49,20 @@ def generate_bindings(api_filepath, use_template_get_node, output_dir="."):
4849 source_gen_folder = Path (output_dir ) / 'src' / 'gen'
4950
5051 try :
51- include_gen_folder .mkdir (parents = True , exist_ok = True )
52+ include_gen_folder .mkdir (parents = True )
5253 except os .error as e :
53- exit (1 )
54+ if e .errno == errno .EEXIST :
55+ print (str (source_gen_folder ) + ": " + os .strerror (e .errno ))
56+ else :
57+ exit (1 )
5458
5559 try :
56- source_gen_folder .mkdir (parents = True , exist_ok = True )
60+ source_gen_folder .mkdir (parents = True )
5761 except os .error as e :
58- exit (1 )
62+ if e .errno == errno .EEXIST :
63+ print (str (source_gen_folder ) + ": " + os .strerror (e .errno ))
64+ else :
65+ exit (1 )
5966
6067 for c in classes :
6168 # print(c['name'])
@@ -68,23 +75,23 @@ def generate_bindings(api_filepath, use_template_get_node, output_dir="."):
6875 impl = generate_class_implementation (icalls , used_classes , c , use_template_get_node )
6976
7077 header_filename = include_gen_folder / (strip_name (c ["name" ]) + ".hpp" )
71- with open (header_filename , "w+" ) as header_file :
78+ with header_filename . open ("w+" ) as header_file :
7279 header_file .write (header )
7380
7481 source_filename = source_gen_folder / (strip_name (c ["name" ]) + ".cpp" )
75- with open (source_filename , "w+" ) as source_file :
82+ with source_filename . open ("w+" ) as source_file :
7683 source_file .write (impl )
7784
7885 icall_header_filename = include_gen_folder / '__icalls.hpp'
79- with open (icall_header_filename , "w+" ) as icall_header_file :
86+ with icall_header_filename . open ("w+" ) as icall_header_file :
8087 icall_header_file .write (generate_icall_header (icalls ))
8188
8289 register_types_filename = source_gen_folder / '__register_types.cpp'
83- with open (register_types_filename , "w+" ) as register_types_file :
90+ with register_types_filename . open ("w+" ) as register_types_file :
8491 register_types_file .write (generate_type_registry (classes ))
8592
8693 init_method_bindings_filename = source_gen_folder / '__init_method_bindings.cpp'
87- with open (init_method_bindings_filename , "w+" ) as init_method_bindings_file :
94+ with init_method_bindings_filename . open ("w+" ) as init_method_bindings_file :
8895 init_method_bindings_file .write (generate_init_method_bindings (classes ))
8996
9097
0 commit comments