add eBatch function for running system commands sequentially
[enigma2.git] / lib / python / Components / Console.py
index c451eba..b034824 100644 (file)
@@ -25,6 +25,21 @@ class Console(object):
                if retval:
                        self.finishedCB(name, retval)
 
+       def eBatch(self, cmds, callback, debug=False):
+               self.debug = debug
+               cmd = cmds.pop(0)
+               self.ePopen(cmd, self.eBatchCB, [cmds, callback, cmd])
+
+       def eBatchCB(self, data, retval, extra_args):
+               (cmds, callback, lastcmd) = extra_args
+               if self.debug:
+                       print '[eBatch] cmd="%s", retval=%s, cmds left=%d, data:\n%s' % (lastcmd, retval, len(cmds), data)
+               if len(cmds):
+                       cmd = cmds.pop(0)
+                       self.ePopen(cmd, self.eBatchCB, [cmds, callback, cmd])
+               else:
+                       callback()
+
        def dataAvailCB(self, name, data):
                self.appResults[name] += data