1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #!/usr/bin/env python3
- import argparse
- import glob
- import os
- if __name__ != "__main__":
- raise ImportError(f"{__name__} should not be used as a module.")
- def main():
- parser = argparse.ArgumentParser(description="Cleanup old cache files")
- parser.add_argument("timestamp", type=int, help="Unix timestamp cutoff")
- parser.add_argument("directory", help="Path to cache directory")
- args = parser.parse_args()
- ret = 0
- # TODO: Convert to non-hardcoded path
- if os.path.exists("redundant.txt"):
- with open("redundant.txt") as redundant:
- for item in map(str.strip, redundant):
- if os.path.isfile(item):
- try:
- os.remove(item)
- except OSError:
- print(f'Failed to handle "{item}"; skipping.')
- ret += 1
- for file in glob.glob(os.path.join(args.directory, "*", "*")):
- try:
- if os.path.getatime(file) < args.timestamp:
- os.remove(file)
- except OSError:
- print(f'Failed to handle "{file}"; skipping.')
- ret += 1
- return ret
- try:
- raise SystemExit(main())
- except KeyboardInterrupt:
- import signal
- signal.signal(signal.SIGINT, signal.SIG_DFL)
- os.kill(os.getpid(), signal.SIGINT)
|