]> arthur.barton.de Git - bup.git/blobdiff - cmd/on-cmd.py
test-meta.sh: use a tmpdir, not ./bupmeta.tmp
[bup.git] / cmd / on-cmd.py
index cebff1aab52ee13aab85cf86e03b7486fa66ef04..60759b64a6d6d85332c489de8a81df04f6d57f94 100755 (executable)
@@ -23,11 +23,11 @@ def handler(signum, frame):
 signal.signal(signal.SIGTERM, handler)
 signal.signal(signal.SIGINT, handler)
 
-sp = None
-p = None
-ret = 99
-
 try:
+    sp = None
+    p = None
+    ret = 99
+
     hp = extra[0].split(':')
     if len(hp) == 1:
         (hostname, port) = (hp[0], None)
@@ -37,25 +37,30 @@ try:
     argv = extra[1:]
     p = ssh.connect(hostname, port, 'on--server')
 
-    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()
-            break
-        except SigException, e:
-            log('\nbup on: %s\n' % e)
-            os.kill(p.pid, e.signum)
-            ret = 84
+    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()
+                if sp:
+                    sp.wait()
+                break
+            except SigException, e:
+                log('\nbup on: %s\n' % e)
+                os.kill(p.pid, e.signum)
+                ret = 84
+except SigException, e:
+    if ret == 0:
+        ret = 99
+    log('\nbup on: %s\n' % e)
+
 sys.exit(ret)