Ensure console commands are executed in order

This commit is contained in:
John Garland 2012-05-28 00:35:14 +10:00
commit f083a3b67b

View file

@ -168,16 +168,16 @@ class ConsoleUI(component.Component):
def on_started(result): def on_started(result):
if not self.interactive: if not self.interactive:
def on_started(result): def on_started(result):
deferreds = [] def do_command(result, cmd):
return self.do_command(cmd)
d = defer.succeed(None)
# If we have args, lets process them and quit # If we have args, lets process them and quit
# allow multiple commands split by ";" # allow multiple commands split by ";"
for arg in args.split(";"): for arg in args.split(";"):
deferreds.append(defer.maybeDeferred(self.do_command, arg.strip())) d.addCallback(do_command, arg.strip())
def on_complete(result): d.addCallback(do_command, "quit")
self.do_command("quit")
dl = defer.DeferredList(deferreds).addCallback(on_complete)
# We need to wait for the rpcs in start() to finish before processing # We need to wait for the rpcs in start() to finish before processing
# any of the commands. # any of the commands.