From 41c6d3433a6b3da80cb00177efdf3f83896e7c55 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Tue, 21 Apr 2020 02:51:02 -0700 Subject: Finish datetimes script --- datetimes | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) mode change 100644 => 100755 datetimes diff --git a/datetimes b/datetimes old mode 100644 new mode 100755 index 0dd814a..b0d44cc --- a/datetimes +++ b/datetimes @@ -6,7 +6,9 @@ linenumber are written to stderr. """ from datetime import datetime import argparse +import fileinput import re +import sys COMMENT = { "": ("#", None), # default @@ -27,7 +29,7 @@ def find_datetime(line): """ m = REGEX.match(line) if m: - return m.group(1) + return int(m.group(1)) else: return None @@ -43,17 +45,20 @@ cli.add_argument( cli.add_argument( "-d", "--dry", + action="store_true", help="dry run, don't actually write to files, but print what would happen", ) args = cli.parse_args() for line in fileinput.input(files=args.files, inplace=True): # python3.8: use := operator here - (found, fmt) = find_datetime(line) + found = find_datetime(line) if found: sys.stderr.write(f"{fileinput.filename()}:{fileinput.lineno()}\n") - human = datetime.strptime(found, "%s").strftime("%Y-%m-%d %H:%M") - ext = fileinput.filename().split(".")[1] - (left, right) = comment[ext] - if not args.dry: - print(f"{line} {left} {human} {empty(right)}", end="") + human = datetime.fromtimestamp(found).strftime("%Y-%m-%d %H:%M") + ext = fileinput.filename().split(".")[-1] + (left, right) = COMMENT[ext] + if args.dry: + print(line, end="") + else: + print(f"{line.strip()} {left} {human} {empty(right)}", end="") -- cgit v1.2.3