]> arthur.barton.de Git - bup.git/commitdiff
on: only wait for a process if it might exist
authorRob Browning <rlb@defaultvalue.org>
Thu, 13 Nov 2014 18:17:23 +0000 (12:17 -0600)
committerRob Browning <rlb@defaultvalue.org>
Wed, 14 Jan 2015 01:35:40 +0000 (19:35 -0600)
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Tested-by: Rob Browning <rlb@defaultvalue.org>
cmd/on-cmd.py

index cebff1aab52ee13aab85cf86e03b7486fa66ef04..fca058c763c9c10082f0857b7b3d51c046cdd68b 100755 (executable)
@@ -27,32 +27,31 @@ sp = None
 p = None
 ret = 99
 
-try:
-    hp = extra[0].split(':')
-    if len(hp) == 1:
-        (hostname, port) = (hp[0], None)
-    else:
-        (hostname, port) = hp
+hp = extra[0].split(':')
+if len(hp) == 1:
+    (hostname, port) = (hp[0], None)
+else:
+    (hostname, port) = hp
 
-    argv = extra[1:]
-    p = ssh.connect(hostname, port, 'on--server')
+argv = extra[1:]
+p = ssh.connect(hostname, port, 'on--server')
 
+try:
     argvs = '\0'.join(['bup'] + argv)
     p.stdin.write(struct.pack('!I', len(argvs)) + argvs)
     p.stdin.flush()
-
     sp = subprocess.Popen([path.exe(), 'server'],
                           stdin=p.stdout, stdout=p.stdin)
     p.stdin.close()
     p.stdout.close()
-
 finally:
     while 1:
         # if we get a signal while waiting, we have to keep waiting, just
         # in case our child doesn't die.
         try:
             ret = p.wait()
-            sp.wait()
+            if sp:
+                sp.wait()
             break
         except SigException, e:
             log('\nbup on: %s\n' % e)