@@ -28,7 +28,7 @@ class GenerationScript:
2828 def __init__ (self , script : Path , files : List [Path ],
2929 output_dir_option : Optional [str ] = None ,
3030 output_file_option : Optional [str ] = None ,
31- optional : bool = False ):
31+ optional : bool = False ) -> None :
3232 # Path from the root of Mbed TLS or TF-PSA-Crypto of the generation script
3333 self .script = script
3434
@@ -56,7 +56,7 @@ def __init__(self, script: Path, files: List[Path],
5656 # consuming repository hasn't been updated yet.
5757 self .optional = optional
5858
59- def get_generation_script_files (generation_script : str ):
59+ def get_generation_script_files (generation_script : str ) -> List [ Path ] :
6060 """
6161 Get the list of the default paths of the files that a given script
6262 generates. It is assumed that the script supports the "--list" option.
@@ -188,7 +188,7 @@ def get_generation_script_files(generation_script: str):
188188 get_generation_script_files ("scripts/generate_visualc_files.pl" ),
189189 "--directory" , None ))
190190
191- def get_generated_files (generation_scripts : List [GenerationScript ]):
191+ def get_generated_files (generation_scripts : List [GenerationScript ]) -> List [ Path ] :
192192 """
193193 List the generated files in Mbed TLS or TF-PSA-Crypto. The path from root
194194 is returned for each generated files.
@@ -199,19 +199,21 @@ def get_generated_files(generation_scripts: List[GenerationScript]):
199199
200200 return files
201201
202- def make_generated_files (generation_scripts : List [GenerationScript ]):
202+ def make_generated_files (generation_scripts : List [GenerationScript ]) -> None :
203203 """
204204 Generate the configuration independent files in their default location in
205205 the Mbed TLS or TF-PSA-Crypto tree.
206206 """
207207 for generation_script in generation_scripts :
208208 subprocess .run ([generation_script .exe , str (generation_script .script )], check = True )
209209
210- def check_generated_files (generation_scripts : List [GenerationScript ], root : Path ):
210+ def check_generated_files (generation_scripts : List [GenerationScript ],
211+ root : Path ) -> bool :
211212 """
212213 Check that the given root directory contains the generated files as expected/
213214 generated by this script.
214215 """
216+ ok = True
215217 for generation_script in generation_scripts :
216218 for file in generation_script .files :
217219 file = root / file
@@ -254,8 +256,9 @@ def check_generated_files(generation_scripts: List[GenerationScript], root: Path
254256 print (f"Generated file { file } not identical to the reference one { ref_file } ." )
255257 file .unlink ()
256258 bak_file .rename (file )
259+ return ok
257260
258- def main ():
261+ def main () -> int :
259262 """
260263 Main function of this program
261264 """
@@ -286,10 +289,13 @@ def main():
286289 files = get_generated_files (generation_scripts )
287290 for file in files :
288291 print (str (file ))
292+ return 0
289293 elif args .check :
290- check_generated_files (generation_scripts , Path (args .root or "." ))
294+ ok = check_generated_files (generation_scripts , Path (args .root or "." ))
295+ return 0 if ok else 1
291296 else :
292297 make_generated_files (generation_scripts )
298+ return 0 # Any error causes an exception
293299
294300if __name__ == "__main__" :
295301 sys .exit (main ())
0 commit comments