@@ -62,12 +62,17 @@ def read_header(self, filename):
6262 ), "{name} read in more than once! Quitting." .format (name = name )
6363 self [name ] = content
6464 elif action == "set" :
65- self [name ] = self .get (" name" , set ()) | set (content .strip ().splitlines ())
65+ self [name ] = self .get (name , set ()) | set (content .strip ().splitlines ())
6666 else :
6767 raise RuntimeError ("Action not understood, must be verbatim or set" )
6868
69+ def post_process (self ):
70+ for key in self :
71+ if isinstance (self [key ], set ):
72+ self [key ] = "\n " .join (self [key ])
6973
70- def MakeHeader (output , main_header , files , tag , namespace , macro = None ):
74+
75+ def MakeHeader (output , main_header , files , tag , namespace , macro = None , version = None ):
7176 groups = HeaderGroups (tag )
7277
7378 # Set tag if possible to class variable
@@ -80,14 +85,13 @@ def MakeHeader(output, main_header, files, tag, namespace, macro=None):
8085 except OSError :
8186 groups ["git" ] = ""
8287
83- with open (main_header ) as f :
84- header = f .read ()
85-
8688 for f in files :
8789 groups .read_header (f )
8890
8991 groups ["namespace" ] = namespace
90- groups ["version" ] = "HACK"
92+ groups ["version" ] = version or groups ["git" ]
93+
94+ groups .post_process ()
9195
9296 with open (main_header ) as f :
9397 single_header = f .read ().format (** groups )
@@ -122,6 +126,15 @@ def MakeHeader(output, main_header, files, tag, namespace, macro=None):
122126 parser .add_argument (
123127 "--macro" , nargs = 2 , help = "Replaces OLD_PREFIX_ with NEW_PREFIX_"
124128 )
129+ parser .add_argument ("--version" , help = "Include this version in the generated file" )
125130 args = parser .parse_args ()
126131
127- MakeHeader (args .output , args .main , args .files , args .tag , args .namespace , args .macro )
132+ MakeHeader (
133+ args .output ,
134+ args .main ,
135+ args .files ,
136+ args .tag ,
137+ args .namespace ,
138+ args .macro ,
139+ args .version ,
140+ )
0 commit comments