summaryrefslogtreecommitdiff
path: root/bin/taler-log-adapter
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2018-01-18 15:20:16 +0100
committerFlorian Dold <florian.dold@gmail.com>2018-01-18 15:20:16 +0100
commit7aaf11b8ae6b9d9c8e7cef546887015fda1f1a54 (patch)
treea5ed54e118a3cef771cc5d63416bd1cec7097520 /bin/taler-log-adapter
parente3ed88e2a29e696216dc1a2ad450c940ccf049b6 (diff)
downloaddeployment-7aaf11b8ae6b9d9c8e7cef546887015fda1f1a54.tar.gz
deployment-7aaf11b8ae6b9d9c8e7cef546887015fda1f1a54.tar.bz2
deployment-7aaf11b8ae6b9d9c8e7cef546887015fda1f1a54.zip
try log adapter for blog frontend
Diffstat (limited to 'bin/taler-log-adapter')
-rwxr-xr-xbin/taler-log-adapter46
1 files changed, 46 insertions, 0 deletions
diff --git a/bin/taler-log-adapter b/bin/taler-log-adapter
new file mode 100755
index 0000000..caf47e0
--- /dev/null
+++ b/bin/taler-log-adapter
@@ -0,0 +1,46 @@
+#!/usr/bin/env python
+# This file is part of GNU TALER.
+# Copyright (C) 2018 INRIA
+#
+# TALER is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free Software
+# Foundation; either version 2.1, or (at your option) any later version.
+#
+# TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License along with
+# GNU TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+#
+# @author Florian Dold
+
+from subprocess import Popen, PIPE
+import sys
+import os
+import os.path
+import signal
+import time
+
+def handler(signum, frame):
+ if p:
+ os.kill(p.pid, signal.SIGINT)
+p = None
+if len(sys.argv) < 3:
+ print("Usage: {} logfile prog_and_args...".format(sys.argv[0]), file=sys.stderr)
+ sys.exit(-1)
+signal.signal(signal.SIGINT, handler)
+p = Popen(sys.argv[2:], stderr=PIPE, shell=False)
+log = sys.argv[1]
+dir = os.path.dirname(log)
+if dir:
+ os.makedirs(os.path.dirname(log), exist_ok=True)
+while p.poll() is None:
+ full_name = time.strftime(log)
+ last_read = p.stderr.readline()
+ if last_read == '':
+ break
+ with open(full_name, "ab") as f:
+ f.write(last_read)
+status = p.wait()
+sys.exit(status)