| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/usr/bin/env python3
- import logging
- import argparse
- import os
- import sys
- import shutil
- logger = logging.getLogger(__name__)
- def launch(root, keeps, debug):
- logger.warning("try to clean %s and keep recent %d items", root, keeps)
- items = os.listdir(root)
- logger.debug("found %d files", len(items))
- if len(items) <= keeps:
- return
- items.sort(key=lambda it: os.path.getmtime(
- os.path.join(root, it)), reverse=True)
- items = items[keeps:]
- for it in items:
- it = os.path.join(root, it)
- logger.warning("delete %s", it)
- if not debug:
- shutil.rmtree(it)
- if __name__ == "__main__":
- parser = argparse.ArgumentParser(
- prog='mint',
- description='Clean legacy files',
- epilog='https://github.com/iapt-platform/mint')
- parser.add_argument('-k', '--keep', type=int, default=7)
- parser.add_argument('-d', '--debug', action='store_true')
- parser.add_argument('-v', '--version', action='version',
- version='%(prog)s v2026.1.17')
- args = parser.parse_args()
- logging.basicConfig(
- level=logging.DEBUG if args.debug else logging.INFO, format='%(asctime)s %(levelname).1s %(name)s: %(message)s')
- logging.debug('run on debug mode')
- if args.keep < 2:
- logging.error("keeps must lager than 2")
- sys.exit(1)
- root = os.getcwd()
- launch(root, args.keep, args.debug)
- logger.info("done.")
|