diff options
-rw-r--r-- | pytools/obmcutil | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/pytools/obmcutil b/pytools/obmcutil index aee294b..a18d970 100644 --- a/pytools/obmcutil +++ b/pytools/obmcutil @@ -6,6 +6,10 @@ import argparse from dbus.mainloop.glib import DBusGMainLoop import gobject +import os +import signal +import time +from subprocess import Popen descriptors = { 'power': { @@ -91,6 +95,9 @@ def run_set_property(dbus_bus, dbus_iface, descriptor, args): property_listener.success = True + if args.wait and args.verbose: + pid = Popen(["/bin/journalctl", "-f", "--no-pager"]).pid + if args.wait: sig_match = dbus_bus.add_signal_receiver(property_listener, "JobRemoved") @@ -100,6 +107,11 @@ def run_set_property(dbus_bus, dbus_iface, descriptor, args): mainloop.run() sig_match.remove() + if args.wait and args.verbose: + # wait some time for the journal output + time.sleep(args.wait_tune) + os.kill(pid, signal.SIGTERM) + return property_listener.success def run_one_command(dbus_bus, descriptor, args): @@ -144,8 +156,13 @@ def main(): dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) parser = argparse.ArgumentParser() + parser.add_argument('--verbose', '-v', action='store_true', + help="Verbose output") parser.add_argument('--wait', '-w', action='store_true', help='Block until the state transition succeeds or fails') + parser.add_argument('--wait-tune', '-t', nargs='?', default=8, type=float, + # help='Seconds to wait for journal output to complete after receiving DBus signal', + help=argparse.SUPPRESS) parser.add_argument('recipe', choices=sorted(descriptors.keys())) args = parser.parse_args() |