new daterake
This commit is contained in:
@@ -1,13 +1,12 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import glob
|
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import sys
|
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):
|
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])
|
result.extend([entry for i, entry in enumerate(reduce(entries, date2month, start_date, "month")) if i < months])
|
||||||
start_date = result[-1][1].date()
|
start_date = result[-1][1].date()
|
||||||
result.extend([entry for i, entry in enumerate(reduce(entries, date2year, start_date, "year")) if i < years])
|
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)
|
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():
|
def get_opts():
|
||||||
parser = argparse.ArgumentParser(
|
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__)
|
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("--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("--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(
|
parser.add_argument(
|
||||||
"--parse", default=None, help="Parse names, instead of using file timestamps (ex: 'service-%%Y-%%m-%%d.log')"
|
"--parse", default=None, help="Parse names, instead of using file timestamps (ex: 'service-%%Y-%%m-%%d.log')"
|
||||||
|
|||||||
Reference in New Issue
Block a user