@@ -30,15 +30,19 @@ def build_metadata_dir(base_url: str) -> str:
3030
3131def init_tofu (base_url : str ) -> bool :
3232 """Initialize local trusted metadata (Trust-On-First-Use) and create a
33- directory for downloads"""
33+ directory for downloads
34+
35+ NOTE: This is unsafe and for demonstration only: the bootstrap root
36+ should be deployed alongside your updater application
37+ """
3438
3539 metadata_dir = build_metadata_dir (base_url )
3640
3741 if not os .path .isdir (metadata_dir ):
3842 os .makedirs (metadata_dir )
3943
4044 data = requests .get (f"{ base_url } /metadata/1.root.json" ).content
41- updater = Updater (
45+ Updater (
4246 metadata_dir = metadata_dir ,
4347 metadata_base_url = f"{ base_url } /metadata/" ,
4448 target_base_url = f"{ base_url } /targets/" ,
@@ -77,6 +81,9 @@ def download(base_url: str, target: str) -> bool:
7781 os .mkdir (DOWNLOAD_DIR )
7882
7983 try :
84+ # NOTE: initial root should be provided with ``bootstrap`` argument:
85+ # This examples uses unsafe Trust-On-First-Use initialization so it is
86+ # not possible here.
8087 updater = Updater (
8188 metadata_dir = metadata_dir ,
8289 metadata_base_url = f"{ base_url } /metadata/" ,
@@ -108,7 +115,7 @@ def download(base_url: str, target: str) -> bool:
108115 return True
109116
110117
111- def main () -> None :
118+ def main () -> str | None :
112119 """Main TUF Client Example function"""
113120
114121 client_args = argparse .ArgumentParser (description = "TUF Client Example" )
@@ -173,6 +180,8 @@ def main() -> None:
173180 else :
174181 client_args .print_help ()
175182
183+ return None
184+
176185
177186if __name__ == "__main__" :
178187 sys .exit (main ())
0 commit comments