Index: helpers.py ================================================================== --- helpers.py +++ helpers.py @@ -45,20 +45,20 @@ if bCreatePath and not os.path.exists(spDest): os.makedirs(spDest, exist_ok=True) print("> unzip in: "+ spDest) spInstall = os.path.abspath(spDest) if os.path.isdir(spInstall): - eraseFolder(spInstall) + eraseFolderContent(spInstall) with zipfile.ZipFile(spfZip) as hZip: hZip.extractall(spDest) else: print("# folder <" + spDest + "> not found") else: print("path destination is empty") -def eraseFolder (sp): +def eraseFolderContent (sp): "erase content of a folder" for sf in os.listdir(sp): spf = os.path.join(sp, sf) try: if os.path.isfile(spf): @@ -72,11 +72,11 @@ def createCleanFolder (sp): "make an empty folder or erase its content if not empty" if not os.path.exists(sp): os.makedirs(sp, exist_ok=True) else: - eraseFolder(sp) + eraseFolderContent(sp) def copyFolder (spSrc, spDst): "copy folder content from src to dst" try: ADDED purge.py Index: purge.py ================================================================== --- purge.py +++ purge.py @@ -0,0 +1,46 @@ +# Python + +import os +import argparse +import sys +import shutil + +import helpers + + +def getFolders (sp): + for sf in os.listdir(sp): + if os.path.isdir(sp+"/"+sf): + yield from getFolders(sp+"/"+sf) + yield (sf, sp+"/"+sf) + + +def purge (sFolderName, bDeleteContentOnly): + for sf, sp in getFolders("."): + if sf == sFolderName: + if bDeleteContentOnly: + helpers.eraseFolderContent(sp) + print(sp, "[content deleted]") + else: + shutil.rmtree(sp) + print(sp, "[erased]") + + +def main (): + "purge cruft and other files" + print("Python: " + sys.version) + if sys.version < "3.7": + print("Python 3.7+ required") + return + + xParser = argparse.ArgumentParser() + xParser.add_argument("-b", "--build", help="purge _build", action="store_true") + xArgs = xParser.parse_args() + + purge("__pycache__", False) + if xArgs.build: + purge("_build", True) + + +if __name__ == '__main__': + main()