summaryrefslogtreecommitdiffstats
path: root/config/run-and-prefix.py
diff options
context:
space:
mode:
Diffstat (limited to 'config/run-and-prefix.py')
-rw-r--r--config/run-and-prefix.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/config/run-and-prefix.py b/config/run-and-prefix.py
new file mode 100644
index 0000000000..af27e6743b
--- /dev/null
+++ b/config/run-and-prefix.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This script runs a process and prefixes its output with.
+# Usage: run-and-prefix.py prefix command arg0 argv1...
+
+import os
+import subprocess
+import sys
+
+sys.stdout = os.fdopen(sys.stdout.fileno(), "wb", 0)
+sys.stderr = os.fdopen(sys.stderr.fileno(), "wb", 0)
+
+prefix = sys.argv[1].encode("utf-8")
+args = sys.argv[2:]
+
+p = subprocess.Popen(
+ args,
+ bufsize=0,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ stdin=sys.stdin.fileno(),
+ close_fds=False,
+)
+
+while True:
+ data = p.stdout.readline()
+
+ if data == b"":
+ break
+
+ sys.stdout.write(b"%s> %s" % (prefix, data))
+
+sys.exit(p.wait())