aboutsummaryrefslogtreecommitdiff
path: root/log_raider/cli
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2021-03-09 01:36:20 -0500
committerJoseph Hunkeler <jhunkeler@gmail.com>2021-03-09 01:36:20 -0500
commit2295f42d515d46aa8175a956ebbde33292d442b2 (patch)
treeeea25e1a42e9ff75ad24e43ab173ce9997c58970 /log_raider/cli
parentfee4186f4ad11ec78f745d13665e45fd84625420 (diff)
downloadlog_raider-2295f42d515d46aa8175a956ebbde33292d442b2.tar.gz
Split main into cli/jenkins.py
* Add verbose_{enable, disable} * printv function uses stderr
Diffstat (limited to 'log_raider/cli')
-rw-r--r--log_raider/cli/__init__.py0
-rw-r--r--log_raider/cli/jenkins.py47
2 files changed, 47 insertions, 0 deletions
diff --git a/log_raider/cli/__init__.py b/log_raider/cli/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/log_raider/cli/__init__.py
diff --git a/log_raider/cli/jenkins.py b/log_raider/cli/jenkins.py
new file mode 100644
index 0000000..27094fb
--- /dev/null
+++ b/log_raider/cli/jenkins.py
@@ -0,0 +1,47 @@
+import argparse
+import json
+import os
+import sys
+
+from .. import jenkins
+from .. import __version__
+
+
+def main():
+ parser = argparse.ArgumentParser()
+ parser.add_argument("-j", "--json", action="store_true", help="Emit JSON")
+ parser.add_argument("-v", "--verbose", action="store_true", help="Increase verbosity")
+ parser.add_argument("-V", "--version", action="store_true", help="Show version")
+ parser.add_argument("logfile", nargs='?', help="Path to Jenkins log file")
+
+ args = parser.parse_args()
+
+ if args.version:
+ print(__version__)
+ exit(0)
+
+ if not args.logfile:
+ print(f"{os.path.basename(sys.argv[0])}: error: the following arguments are required: logfile")
+ parser.print_help()
+ exit(1)
+
+ if not os.path.exists(args.logfile):
+ print(f"{args.logfile}: does not exist")
+
+ if args.verbose:
+ jenkins.verbose_enable()
+
+ data = jenkins.parse_log(args.logfile)
+
+ if args.json:
+ print(json.dumps(data, indent=2))
+ else:
+ for x in data:
+ print("#" * 79)
+ print(f"{x['type']} - {x['name']} (line @ {x['line']})")
+ print("#" * 79)
+ print(f"{x['data']}")
+
+
+if __name__ == "__main__":
+ sys.exit(main())