From e29e7d53ff688d9d3e810b8b6edbc4de2381858a Mon Sep 17 00:00:00 2001
From: Oliver Breitwieser <oliver.breitwieser@kip.uni-heidelberg.de>
Date: Wed, 19 Jun 2019 10:40:43 +0200
Subject: [PATCH] Add quick awk script to parse jenkins log
Change-Id: Ic49ddb2b2200339984252266e58508de90660f0c
---
misc-files/parselog.awk | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100755 misc-files/parselog.awk
diff --git a/misc-files/parselog.awk b/misc-files/parselog.awk
new file mode 100755
index 00000000..20be6672
--- /dev/null
+++ b/misc-files/parselog.awk
@@ -0,0 +1,40 @@
+#!/usr/bin/awk -f
+
+# Parses timestamp and counts seconds
+# Only prints commands that took longer than a second.
+
+function date_to_sec(date)
+{
+ if ( ! ( date ~ /\[[\-0-9]*T[:.0-9]*Z\]/ ) )
+ {
+ return "FAIL"
+ }
+ # clear brackets from date
+ gsub(/(\[|\])/, "", date)
+ date = sprintf("(date +%%s.%%N -d '%s' || echo FAIL) 2>/dev/null", date)
+ date | getline secs
+ close(date)
+ return secs
+}
+
+{
+ secs = date_to_sec($1)
+
+ if (secs != "FAIL")
+ {
+ elapsed = secs - last
+
+ last = secs
+
+ if (elapsed > 0)
+ {
+ if ( ! (last_command ~ /^$/ ))
+ {
+ # the elapsed time is for the PREVIOUS line of input
+ print elapsed last_command
+ }
+ }
+ $1 = ""
+ last_command = $0
+ }
+}
--
GitLab