new daterake
This commit is contained in:
@@ -1,13 +1,12 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import glob
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
from datetime import datetime, timedelta
|
||||
from datetime import datetime
|
||||
|
||||
__version__ = "20251107.01"
|
||||
__version__ = "20251107.02"
|
||||
|
||||
|
||||
def filter_entries(entries, years=6, months=6, weeks=6, days=6, head=5):
|
||||
@@ -56,7 +55,6 @@ def filter_entries(entries, years=6, months=6, weeks=6, days=6, head=5):
|
||||
result.extend([entry for i, entry in enumerate(reduce(entries, date2month, start_date, "month")) if i < months])
|
||||
start_date = result[-1][1].date()
|
||||
result.extend([entry for i, entry in enumerate(reduce(entries, date2year, start_date, "year")) if i < years])
|
||||
start_date = result[-1][1].date()
|
||||
|
||||
result.sort(key=lambda x: x[1], reverse=True)
|
||||
|
||||
@@ -67,7 +65,8 @@ def filter_entries(entries, years=6, months=6, weeks=6, days=6, head=5):
|
||||
|
||||
def get_opts():
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Filter entries based on file timestamps, or parse dates. Filenames read from stdin"
|
||||
description="Filter entries based on file timestamps, or parsed dates for keeping backups for example. Filenames read from stdin. ",
|
||||
epilog="Example usage (watch out for actual deletion): # ls | grep ^backup- | daterake -n 5 --drop | xargs echo rm -v ",
|
||||
)
|
||||
parser.add_argument("--version", action="version", version=__version__)
|
||||
|
||||
@@ -88,7 +87,7 @@ def get_opts():
|
||||
)
|
||||
parser.add_argument("--json", default=False, action="store_true", help="Print output as JSON")
|
||||
parser.add_argument("--verbose", "-v", default=False, action="store_true", help="Print output as verbose table")
|
||||
parser.add_argument("--invert", default=False, action="store_true", help="Print names to remove")
|
||||
parser.add_argument("--invert", "--drop", default=False, action="store_true", help="Print the names to remove")
|
||||
|
||||
parser.add_argument(
|
||||
"--parse", default=None, help="Parse names, instead of using file timestamps (ex: 'service-%%Y-%%m-%%d.log')"
|
||||
|
||||
Reference in New Issue
Block a user