From c7b614da8fd893b2570124905ec5b73e70156af6 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Thu, 22 Mar 2018 09:23:51 -0700 Subject: [PATCH] WIP Python script to replace the print_msg stuff in .shell-functions --- bin/shell-log | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 bin/shell-log diff --git a/bin/shell-log b/bin/shell-log new file mode 100644 index 0000000..e8df22d --- /dev/null +++ b/bin/shell-log @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 +# Eryn Wells +''' +Logging for my shells. +''' + +import argparse +import logging +import os.path +import sys + +LOGFILE = os.path.expanduser('~/.shell.log') + +def parse_args(): + parser = argparse.ArgumentParser() + parser.add_argument('-b', '--bold', action='store_true') + parser.add_argument('-f', '--file', default=LOGFILE) + parser.add_argument('-l', '--level', type=int, default=0) + parser.add_argument('-n', '--noeol', action='store_true') + parser.add_argument('msg') + parser.add_argument('args', nargs=argparse.REMAINDER) + args = parser.parse_args() + return args + +def logger(args): + logger = logging.getLogger('') + + stdout_handler = logging.StreamHandler() + # TODO: Set formatter correctly. + logger.addHandler(stdout_handler) + + file_handler = logging.FileHandler(args.file) + logger.addHandler(file_handler) + + return logger + +def main(): + # Set up. + args = parse_args() + log = logger() + + # Set the level from the shell. + level = sys.environ.get('NOISY', logging.INFO) + log.setLevel(level) + + # Log it. + log.log(args.level, args.msg, *args.args) + +if __name__ == '__main__': + main()