Files
claude-code 6418abe71d
werkator build succeeded after 00:39
werkator/werkrevisor-statistics build succeeded after 00:31
werkrevisor 0.31.3: release tools keep only the two newest archives (#69)
Co-authored-by: claude-code <claude-code@javagil.de>
2026-10-10 00:10:59 +02:00

27 lines
786 B
Python

"""Selects the release files to remove: all but the newest versions, never one in use.
Usage: python3 tools/release_files.py <keep> <in-use>... -- <name>...
Prints the names to remove, one per line.
"""
import re
import sys
VERSION = re.compile(r"(\d+(?:\.\d+)+)")
def version(name):
match = VERSION.search(name)
return tuple(int(part) for part in match.group(1).split(".")) if match else None
def to_remove(names, keep=2, in_use=()):
versioned = sorted((n for n in names if version(n) is not None), key=version, reverse=True)
return [n for n in versioned[keep:] if n not in set(in_use)]
if __name__ == "__main__":
args = sys.argv[1:]
split = args.index("--")
for name in to_remove(args[split + 1:], int(args[0]), args[1:split]):
print(name)