@@ -27,7 +27,7 @@ class GenerationScript:
2727 def __init__ (self , script : Path , files : List [Path ],
2828 output_dir_option : Optional [str ] = None ,
2929 output_file_option : Optional [str ] = None ,
30- optional : bool = False ):
30+ optional : bool = False ) -> None :
3131 # Path from the root of Mbed TLS or TF-PSA-Crypto of the generation script
3232 self .script = script
3333
@@ -55,7 +55,7 @@ def __init__(self, script: Path, files: List[Path],
5555 # consuming repository hasn't been updated yet.
5656 self .optional = optional
5757
58- def get_generation_script_files (generation_script : str ):
58+ def get_generation_script_files (generation_script : str ) -> List [ Path ] :
5959 """
6060 Get the list of the default paths of the files that a given script
6161 generates. It is assumed that the script supports the "--list" option.
@@ -182,7 +182,7 @@ def get_generation_script_files(generation_script: str):
182182 get_generation_script_files ("scripts/generate_visualc_files.pl" ),
183183 "--directory" , None ))
184184
185- def get_generated_files (generation_scripts : List [GenerationScript ]):
185+ def get_generated_files (generation_scripts : List [GenerationScript ]) -> List [ Path ] :
186186 """
187187 List the generated files in Mbed TLS or TF-PSA-Crypto. The path from root
188188 is returned for each generated files.
@@ -193,19 +193,21 @@ def get_generated_files(generation_scripts: List[GenerationScript]):
193193
194194 return files
195195
196- def make_generated_files (generation_scripts : List [GenerationScript ]):
196+ def make_generated_files (generation_scripts : List [GenerationScript ]) -> None :
197197 """
198198 Generate the configuration independent files in their default location in
199199 the Mbed TLS or TF-PSA-Crypto tree.
200200 """
201201 for generation_script in generation_scripts :
202202 subprocess .run ([generation_script .exe , str (generation_script .script )], check = True )
203203
204- def check_generated_files (generation_scripts : List [GenerationScript ], root : Path ):
204+ def check_generated_files (generation_scripts : List [GenerationScript ],
205+ root : Path ) -> bool :
205206 """
206207 Check that the given root directory contains the generated files as expected/
207208 generated by this script.
208209 """
210+ ok = True
209211 for generation_script in generation_scripts :
210212 for file in generation_script .files :
211213 file = root / file
@@ -248,8 +250,9 @@ def check_generated_files(generation_scripts: List[GenerationScript], root: Path
248250 print (f"Generated file { file } not identical to the reference one { ref_file } ." )
249251 file .unlink ()
250252 bak_file .rename (file )
253+ return ok
251254
252- def main ():
255+ def main () -> int :
253256 """
254257 Main function of this program
255258 """
@@ -280,10 +283,13 @@ def main():
280283 files = get_generated_files (generation_scripts )
281284 for file in files :
282285 print (str (file ))
286+ return 0
283287 elif args .check :
284- check_generated_files (generation_scripts , Path (args .root or "." ))
288+ ok = check_generated_files (generation_scripts , Path (args .root or "." ))
289+ return 0 if ok else 1
285290 else :
286291 make_generated_files (generation_scripts )
292+ return 0 # Any error causes an exception
287293
288294if __name__ == "__main__" :
289295 sys .exit (main ())
0 commit comments