1313]
1414
1515def main ():
16- parser = argparse .ArgumentParser (description = "Convert known_good.json to baseline.csv format." )
17- parser .add_argument ("input_json" , help = "Path to known_good.json" )
18- parser .add_argument ("output_csv" , help = "Path to output baseline.csv" )
16+ parser = argparse .ArgumentParser (description = "Convert known_good.json to workspace metadata files for gita and git submodules." )
17+
18+ parser .add_argument ("--known-good" , dest = "known_good" , default = "known_good.json" , help = "Path to known_good.json" )
19+ parser .add_argument ("--gita-workspace" , dest = "gita_workspace" , default = ".gita-workspace.csv" , help = "File to output gita workspace metadata" )
20+ parser .add_argument ("--git-submodules" , dest = "git_submodules" , default = ".gitmodules" , help = "File to output git submodules metadata" )
1921 args = parser .parse_args ()
2022
21- with open (args .input_json , "r" ) as f :
23+ with open (args .known_good , "r" ) as f :
2224 data = json .load (f )
2325
2426 modules = data .get ("modules" , {})
25- rows = []
27+
28+ gita_metadata = []
2629 for name , info in modules .items ():
2730 repo_url = info .get ("repo" , "" )
2831 if not repo_url :
@@ -39,12 +42,22 @@ def main():
3942
4043 # gita format: {url},{name},{path},{prop['type']},{repo_flags},{branch}
4144 row = [repo_url , name , workspace_path , "" , "" , hash_ ]
42- rows .append (row )
45+ gita_metadata .append (row )
4346
44- with open (args .output_csv , "w" , newline = "" ) as f :
47+ with open (args .gita_workspace , "w" , newline = "" ) as f :
4548 writer = csv .writer (f )
46- for row in rows :
49+ for row in gita_metadata :
4750 writer .writerow (row )
4851
52+ with open (args .git_submodules , "w" ) as f :
53+ for name , info in modules .items ():
54+ repo_url = info .get ("repo" , "" )
55+ branch = info .get ("branch" , "main" )
56+ workspace_path = name
57+ f .write (f"[submodule \" { name } \" ]\n " )
58+ f .write (f"\t path = { workspace_path } \n " )
59+ f .write (f"\t url = { repo_url } \n " )
60+ f .write (f"\t branch = { branch } \n " )
61+
4962if __name__ == "__main__" :
5063 main ()
0 commit comments