Update to 0.0.13; use Halloween colors

This commit is contained in:
Jeffrey Serio 2022-10-11 12:17:06 -05:00
parent 0d43b9e192
commit d09aaf6731
2 changed files with 35 additions and 19 deletions

View File

@ -3,7 +3,7 @@ from setuptools import setup, find_packages
setup( setup(
name="daily-event-logger", name="daily-event-logger",
version="0.0.10", version="0.0.13",
license="GPL-3.0", license="GPL-3.0",
author="Jeffrey Serio", author="Jeffrey Serio",
author_email="hyperreal@fedoraproject.org", author_email="hyperreal@fedoraproject.org",

View File

@ -15,7 +15,7 @@ from rich.traceback import install
install(show_locals=True) install(show_locals=True)
VERSION = "0.0.10" VERSION = "0.0.13"
default_date = dt.date.today().strftime("%Y-%m-%d") default_date = dt.date.today().strftime("%Y-%m-%d")
ELOG_DIR = os.getenv("ELOG_DIR") ELOG_DIR = os.getenv("ELOG_DIR")
@ -26,8 +26,11 @@ else:
def elog_init(filename): def elog_init(filename):
"""Initializes elog file and directory (if necessary)""" """Initialize elog file and directory, if necessary.
elog_dir is taken from the current shell's ELOG_DIR environment variable, or else it defaults to
~/elogs.
"""
elog_file = elog_dir.joinpath(filename).with_suffix(".json") elog_file = elog_dir.joinpath(filename).with_suffix(".json")
elog_dir.mkdir(exist_ok=True) elog_dir.mkdir(exist_ok=True)
@ -40,8 +43,10 @@ def elog_init(filename):
def elog_list(args): def elog_list(args):
"""List elog entries for provided timestamp range and/or elog file""" """List elog entries.
Lists elog entries for provided timestamp range and/or elog file
"""
if args.file: if args.file:
selected_elog_file = elog_dir.joinpath(args.file) selected_elog_file = elog_dir.joinpath(args.file)
else: else:
@ -67,22 +72,24 @@ def elog_list(args):
with open(selected_elog_file, "r") as ef: with open(selected_elog_file, "r") as ef:
json_data = json.load(ef) json_data = json.load(ef)
table = Table(style="yellow", header_style="bold", box=box.ROUNDED) table = Table(style="#8700ff", header_style="bold", box=box.ROUNDED)
table.add_column("Index", justify="right", style="magenta") table.add_column("Index", justify="right", style="#ffff00")
table.add_column("Timestamp", justify="left", style="dim") table.add_column("Timestamp", justify="left", style="#ff8700")
table.add_column("Message", justify="left") table.add_column("Message", justify="left")
for i in range(len(json_data)): for i in range(len(json_data)):
if json_data[i]["timestamp"] > ts_from and json_data[i]["timestamp"] < ts_to: if json_data[i]["timestamp"] > ts_from and json_data[i]["timestamp"] < ts_to:
table.add_row(str(i), json_data[i]["timestamp"], json_data[i]["message"]) table.add_row(str(i), json_data[i]["timestamp"], json_data[i]["message"])
console = Console() console = Console(color_system="256")
console.print(table) console.print(table)
def elog_list_files(args): def elog_list_files(args):
"""Lists all elog files in elog directory""" """List all elog files.
Lists all elog files currently present in elog directory.
"""
for file in sorted(elog_dir.iterdir()): for file in sorted(elog_dir.iterdir()):
if file.is_file(): if file.is_file():
if args.absolute: if args.absolute:
@ -92,8 +99,10 @@ def elog_list_files(args):
def elog_search(args): def elog_search(args):
"""Search for a string in all elog files and print the result.""" """Search for a string.
Searches all elog files and prints found matches.
"""
found_entries = list() found_entries = list()
elog_list = [file.name for file in elog_dir.iterdir()] elog_list = [file.name for file in elog_dir.iterdir()]
@ -122,8 +131,10 @@ def elog_search(args):
def elog_sort(file): def elog_sort(file):
"""Sort elog entries by timestamp in provided `file`""" """Sort elog entries.
Entries are sorted by provided timestamp.
"""
with open(file, "r") as ef: with open(file, "r") as ef:
json_data = json.load(ef) json_data = json.load(ef)
json_data.sort( json_data.sort(
@ -137,8 +148,10 @@ def elog_sort(file):
def validate_json(file): def validate_json(file):
"""Validate JSON data in provided `file`""" """Validate JSON data.
Call jsonschema.validate on `file`.
"""
elog_schema = { elog_schema = {
"type": "array", "type": "array",
"properties": { "properties": {
@ -159,10 +172,10 @@ def validate_json(file):
def elog_append(args): def elog_append(args):
""" """
Append a new elog entry to the elog file indicated by provided timestamp. Append a new elog entry to the elog file.
Else append to the elog file for current day
"""
Use elog file indicated by provided timestamp, or else use the elog file for current day.
"""
if not args.timestamp: if not args.timestamp:
ts = dt.datetime.now().strftime("%Y-%m-%d %H:%M:%S") ts = dt.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
else: else:
@ -188,8 +201,7 @@ def elog_append(args):
def elog_edit(args): def elog_edit(args):
"""Edit elog entry at provided index argument""" """Edit elog entry at provided index argument."""
if args.file: if args.file:
elog_file = elog_dir.joinpath(args.file) elog_file = elog_dir.joinpath(args.file)
else: else:
@ -208,8 +220,7 @@ def elog_edit(args):
def elog_remove(args): def elog_remove(args):
"""Remove an elog entry at provided index argument""" """Remove an elog entry at provided index argument."""
if args.file: if args.file:
elog_file = elog_dir.joinpath(args.file) elog_file = elog_dir.joinpath(args.file)
else: else:
@ -357,6 +368,11 @@ search_parser.set_defaults(func=elog_search)
def main(): def main():
"""Parse command line arguments and run desired function.
Checks if the number of arguments provided at the command line is less than the required number,
and if so, it prints the usage message.
"""
if len(sys.argv) < 2: if len(sys.argv) < 2:
parser.print_usage() parser.print_usage()
else: else: