Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 18 additions & 2 deletions tools/azure-sdk-tools/packaging_tools/sdk_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
_LOGGER = logging.getLogger(__name__)


def del_outdated_samples(readme: str):
def del_outdated_folder(readme: str):
python_readme = Path(readme).parent / "readme.python.md"
if not python_readme.exists():
_LOGGER.info(f"do not find python configuration: {python_readme}")
Expand All @@ -33,15 +33,31 @@ def del_outdated_samples(readme: str):
with open(python_readme, "r") as file_in:
content = file_in.readlines()
pattern = ["$(python-sdks-folder)", "azure-mgmt-"]
is_multiapi = "multiapi: true" in ("".join(content))
special_service = ["azure-mgmt-resource/"]
for line in content:
if all(p in line for p in pattern):
# remove generated_samples
sdk_folder = re.findall("[a-z]+/[a-z]+-[a-z]+-[a-z]+", line)[0]
sample_folder = Path(f"sdk/{sdk_folder}/generated_samples")
if sample_folder.exists():
shutil.rmtree(sample_folder)
_LOGGER.info(f"remove sample folder: {sample_folder}")
else:
_LOGGER.info(f"sample folder does not exist: {sample_folder}")
# remove old generated SDK code
sdk_folder = re.findall("[a-z]+/[a-z]+-[a-z]+-[a-z]+/[a-z]+/[a-z]+/[a-z]+", line)[0]
code_folder = Path(f"sdk/{sdk_folder}")
if is_multiapi and code_folder.exists():
if any(item in str(sdk_folder) for item in special_service):
for folder in code_folder.iterdir():
if folder.is_dir():
shutil.rmtree(folder)
else:
shutil.rmtree(code_folder)
_LOGGER.info(f"remove code folder: {code_folder}")
else:
_LOGGER.info(f"code folder does not exist or it is not multiapi: {code_folder}")
return

_LOGGER.info(f"do not find {pattern} in {python_readme}")
Expand Down Expand Up @@ -79,7 +95,7 @@ def main(generate_input, generate_output):
is_cadl = False
if "resource-manager" in input_readme:
relative_path_readme = str(Path(spec_folder, input_readme))
del_outdated_samples(relative_path_readme)
del_outdated_folder(relative_path_readme)
config = generate(
CONFIG_FILE,
sdk_folder,
Expand Down