| #!/usr/bin/python3 |
| |
| """A script to remove old alpha/beta/rc version prebuilts. |
| |
| Script deletes all alpha/beta/rc unless they are the last two released versions |
| of the artifacts. All stable releases are kept. |
| """ |
| |
| import os |
| import shutil |
| import re |
| from packaging.version import Version |
| |
| versionPattern = re.compile("^[0-9]+\.[0-9]+\..*$") |
| SCRIPT_PATH = os.path.realpath(os.path.dirname(__file__)) |
| directories = [x for x in os.walk(SCRIPT_PATH)] |
| for directory in directories: |
| # Use Version to sort so we handle 1.9.0 and 1.10.0 correctly |
| # fixeddocs is excluded due to androidx/concurrent/concurrent-futures/1.0.0-fixeddocs01 |
| versionDirs = sorted([subdir |
| for subdir in directory[1] |
| if versionPattern.match(subdir) and "fixeddocs" not in subdir |
| ], key=Version)[:-2] |
| alphaBetaVersionDirs = [subdir |
| for subdir in versionDirs |
| if "-alpha" in subdir or "-beta" in subdir or "-rc" in subdir |
| ] |
| if any(alphaBetaVersionDirs): |
| for version in alphaBetaVersionDirs: |
| shutil.rmtree(directory[0] + "/" + version) |