mirror of
https://codeberg.org/hyperreal/daily-event-logger
synced 2024-11-25 11:53:42 +01:00
Update to 0.0.13; use Halloween colors
This commit is contained in:
parent
0d43b9e192
commit
d09aaf6731
2
setup.py
2
setup.py
@ -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",
|
||||||
|
@ -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:
|
||||||
|
Loading…
Reference in New Issue
Block a user