Source code for pykubegrader.build.clean_folder
import argparse
import os
import shutil
import sys
[docs]
class FolderCleaner:
def __init__(self, root_folder: str):
"""
Initializes the FolderCleaner with the root folder to clean.
Args:
root_folder (str): Path to the root folder to start cleaning.
"""
self.root_folder = root_folder
[docs]
def delete_dist_folders(self):
"""
Recursively deletes all folders named 'dist' starting from the root folder.
"""
for dirpath, dirnames, filenames in os.walk(self.root_folder, topdown=False):
if "dist" in dirnames:
dist_path = os.path.join(dirpath, "dist")
try:
shutil.rmtree(dist_path)
print(f"Deleted: {dist_path}")
except Exception as e:
print(f"Failed to delete {dist_path}: {e}")
[docs]
def main():
parser = argparse.ArgumentParser(
description="Recursively delete all folders named 'dist' starting from a specified root folder."
)
parser.add_argument(
"root_folder", type=str, help="Path to the root folder to process"
)
args = parser.parse_args()
cleaner = FolderCleaner(root_folder=args.root_folder)
cleaner.delete_dist_folders()
if __name__ == "__main__":
sys.exit(main())