12345678910111213141516171819202122232425262728293031323334 |
- import subprocess
- import sys
- import json
- import datetime
- import urllib.parse
- import sys
- def main():
- files_by_date = {}
- bucket = sys.argv[1]
- days_to_keep = int(sys.argv[2])
- print(f"Looking for binaries to delete older than {days_to_keep} days")
- files_lines = execute_cli(f"b2 ls --long --versions {bucket} nightly").split("\n")
- for x in files_lines:
- parts = [y for y in x.split(' ') if y]
- if parts and parts[0]:
- date = datetime.datetime.strptime(parts[2], '%Y-%m-%d').replace(hour=0, minute=0, second=0, microsecond=0)
- now = datetime.datetime.utcnow().replace(hour=0, minute=0, second=0, microsecond=0)
- delta = now - date
- if delta.days > days_to_keep:
- print(f'Deleting {parts[5]}')
- execute_cli(f'b2 delete-file-version {parts[0]}')
- def execute_cli(command):
- sb = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
- return sb.stdout.read().decode("utf-8");
- if __name__ == '__main__':
- sys.exit(main())
|