summaryrefslogtreecommitdiff
path: root/read.py
diff options
context:
space:
mode:
Diffstat (limited to 'read.py')
-rwxr-xr-xread.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/read.py b/read.py
new file mode 100755
index 0000000..4a30a4b
--- /dev/null
+++ b/read.py
@@ -0,0 +1,61 @@
+#!/usr/bin/env python
+
+from stdlib import *
+from datetime import datetime
+from configparser import ConfigParser as config
+from configparser import NoOptionError, NoSectionError
+from os import path
+
+
+expanduser = path.expanduser
+
+# function to get config
+if not path.isfile(f"{expanduser('~')}/.config/jlog/jlog.conf"):
+ raise FileNotFoundError(f"Config {expanduser('~')}/.config/jlog/jlog.conf not found")
+else:
+ printinfo(f"Using config file {expanduser('~')}/.config/jlog/jlog.conf")
+config = config()
+config.read(f"{expanduser('~')}/.config/jlog/jlog.conf")
+try:
+ log_file = config.get('global', 'file').replace('~', expanduser('~'))
+except NoSectionError:
+ raise NoSectionError(f"Section global not found in {expanduser('~')}/.config/jlog/jlog.conf")
+except NoOptionError:
+ log_file = f"{expanduser('~')}/.config/jlog/jlog_{datetime.now()}"
+if not path.isfile(log_file):
+ printerror(f"Log file {log_file} not found")
+ raise FileNotFoundError(f"Log file {log_file} not found")
+else:
+ printinfo(f"Using log file {log_file}")
+
+def colorize(log: str) -> str:
+ lines = log.splitlines()
+ for i in range(len(lines)):
+ lines[i] = lines[i].replace('DEBUG', f"{ascii.color.lcyan}DEBUG{ascii.color.reset}")
+ lines[i] = lines[i].replace('INFO', f"{ascii.color.green}INFO{ascii.color.reset}")
+ lines[i] = lines[i].replace('WARNING', f"{ascii.color.yellow}WARNING{ascii.color.reset}")
+ lines[i] = lines[i].replace('ERROR', f"{ascii.color.lred}ERROR{ascii.color.reset}")
+ lines[i] = lines[i].replace('CRITICAL', f"{ascii.color.red}CRITICAL{ascii.color.reset}")
+ lines[i] = lines[i].replace('FATAL', f"{ascii.color.red}FATAL{ascii.color.reset}")
+
+ return '\n'.join(lines)
+
+
+
+# main function(process)
+def get_log() -> str:
+ return open(log_file, 'r').read()
+
+
+# main function(ui)
+def main() -> None:
+ global log
+
+ log = get_log()
+
+ log = colorize(log)
+
+if __name__ == "__main__":
+ main()
+
+aprintf(log, interval=0.001) \ No newline at end of file