#!/usr/bin/env python3 # # SPDX-License-Identifier: GPL-2.0-or-later # """Delete stale assets from the download cache of the functional tests""" import os import stat import sys import time from pathlib import Path cache_dir_env = os.getenv('QEMU_TEST_CACHE_DIR') if cache_dir_env: cache_dir = Path(cache_dir_env, "download") else: cache_dir = Path(Path("~").expanduser(), ".cache", "qemu", "download") if not cache_dir.exists(): print(f"Cache dir {cache_dir} does not exist!", file=sys.stderr) sys.exit(1) os.chdir(cache_dir) for file in cache_dir.iterdir(): # Only consider the files that use a sha256 as filename: if len(file.name) != 64: continue try: timestamp = int(file.with_suffix(".stamp").read_text()) except FileNotFoundError: # Assume it's an old file that was already in the cache before we # added the code for evicting stale assets. Use the release date # of QEMU v10.1 as a default timestamp. timestamp = time.mktime((2025, 8, 26, 0, 0, 0, 0, 0, 0)) age = time.time() - timestamp # Delete files older than half of a year (183 days * 24h * 60m * 60s) if age > 15811200: print(f"Removing {cache_dir}/{file.name}.") file.chmod(stat.S_IWRITE) file.unlink()