A Python port of the Invisible Internet Project (I2P)
1"""Temp directory scanner and cleaner.
2
3Ported from net.i2p.util.TempDirScanner.
4"""
5
6from __future__ import annotations
7
8import os
9import time
10
11
12def scan_temp_dir(directory: str, max_age_secs: float) -> list[str]:
13 """Remove files older than max_age_secs from directory.
14
15 Returns list of removed file paths.
16 """
17 removed: list[str] = []
18 now = time.time()
19 try:
20 for entry in os.scandir(directory):
21 if entry.is_file():
22 age = now - entry.stat().st_mtime
23 if age > max_age_secs:
24 try:
25 os.unlink(entry.path)
26 removed.append(entry.path)
27 except OSError:
28 pass
29 except OSError:
30 pass
31 return removed