2424_LOGGER = logging .getLogger (__name__ )
2525
2626
27- def del_outdated_samples (readme : str ):
27+ def del_outdated_folder (readme : str ):
2828 python_readme = Path (readme ).parent / "readme.python.md"
2929 if not python_readme .exists ():
3030 _LOGGER .info (f"do not find python configuration: { python_readme } " )
@@ -33,15 +33,31 @@ def del_outdated_samples(readme: str):
3333 with open (python_readme , "r" ) as file_in :
3434 content = file_in .readlines ()
3535 pattern = ["$(python-sdks-folder)" , "azure-mgmt-" ]
36+ is_multiapi = "multiapi: true" in ("" .join (content ))
37+ special_service = ["azure-mgmt-resource/" ]
3638 for line in content :
3739 if all (p in line for p in pattern ):
40+ # remove generated_samples
3841 sdk_folder = re .findall ("[a-z]+/[a-z]+-[a-z]+-[a-z]+" , line )[0 ]
3942 sample_folder = Path (f"sdk/{ sdk_folder } /generated_samples" )
4043 if sample_folder .exists ():
4144 shutil .rmtree (sample_folder )
4245 _LOGGER .info (f"remove sample folder: { sample_folder } " )
4346 else :
4447 _LOGGER .info (f"sample folder does not exist: { sample_folder } " )
48+ # remove old generated SDK code
49+ sdk_folder = re .findall ("[a-z]+/[a-z]+-[a-z]+-[a-z]+/[a-z]+/[a-z]+/[a-z]+" , line )[0 ]
50+ code_folder = Path (f"sdk/{ sdk_folder } " )
51+ if is_multiapi and code_folder .exists ():
52+ if any (item in str (sdk_folder ) for item in special_service ):
53+ for folder in code_folder .iterdir ():
54+ if folder .is_dir ():
55+ shutil .rmtree (folder )
56+ else :
57+ shutil .rmtree (code_folder )
58+ _LOGGER .info (f"remove code folder: { code_folder } " )
59+ else :
60+ _LOGGER .info (f"code folder does not exist or it is not multiapi: { code_folder } " )
4561 return
4662
4763 _LOGGER .info (f"do not find { pattern } in { python_readme } " )
@@ -79,7 +95,7 @@ def main(generate_input, generate_output):
7995 is_cadl = False
8096 if "resource-manager" in input_readme :
8197 relative_path_readme = str (Path (spec_folder , input_readme ))
82- del_outdated_samples (relative_path_readme )
98+ del_outdated_folder (relative_path_readme )
8399 config = generate (
84100 CONFIG_FILE ,
85101 sdk_folder ,
0 commit comments