|
@@ -1,4 +1,5 @@
|
|
|
import argparse
|
|
|
+import datetime
|
|
|
import logging
|
|
|
import os
|
|
|
import shutil
|
|
@@ -23,14 +24,22 @@ def main():
|
|
|
file_paths = [os.path.join(dirpath, filename)
|
|
|
for dirpath, _, filenames in os.walk(args.root_dir_path)
|
|
|
for filename in filenames]
|
|
|
+ file_mtime_paths = [(os.stat(p).st_mtime, p) for p in file_paths]
|
|
|
+ file_mtime_paths.sort()
|
|
|
removed_files_counter = 0
|
|
|
- for file_path in sorted(file_paths, key=lambda p: os.stat(p).st_mtime):
|
|
|
+ last_mtime = None
|
|
|
+ for file_mtime, file_path in file_mtime_paths:
|
|
|
if shutil.disk_usage(args.root_dir_path).free >= args.free_bytes:
|
|
|
break
|
|
|
os.remove(file_path)
|
|
|
logging.debug('Removed file %s', file_path)
|
|
|
removed_files_counter += 1
|
|
|
- logging.info('Removed %d files', removed_files_counter)
|
|
|
+ last_mtime = file_mtime
|
|
|
+ if removed_files_counter == 0:
|
|
|
+ logging.warn('No files to remove')
|
|
|
+ else:
|
|
|
+ logging.info('Removed %d file(s) with modification date <= %s', removed_files_counter,
|
|
|
+ datetime.datetime.utcfromtimestamp(last_mtime).isoformat('T'))
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|