]> arthur.barton.de Git - bup.git/blobdiff - lib/bup/cmd/join.py
Replace LocalRepo/RemoteRepo __del__ with context management
[bup.git] / lib / bup / cmd / join.py
index caf524a6463f3ae86445657e09894c12a632c876..bb66585aadc5676ac8951da8cf8a26293ad92bce 100755 (executable)
@@ -31,21 +31,21 @@ def main(argv):
         extra = linereader(stdin)
 
     ret = 0
-    repo = RemoteRepo(opt.remote) if opt.remote else LocalRepo()
-
-    if opt.o:
-        outfile = open(opt.o, 'wb')
-    else:
-        sys.stdout.flush()
-        outfile = byte_stream(sys.stdout)
-
-    for ref in [argv_bytes(x) for x in extra]:
-        try:
-            for blob in repo.join(ref):
-                outfile.write(blob)
-        except KeyError as e:
-            outfile.flush()
-            log('error: %s\n' % e)
-            ret = 1
+    with RemoteRepo(opt.remote) if opt.remote else LocalRepo() as repo:
+
+        if opt.o:
+            outfile = open(opt.o, 'wb')
+        else:
+            sys.stdout.flush()
+            outfile = byte_stream(sys.stdout)
+
+        for ref in [argv_bytes(x) for x in extra]:
+            try:
+                for blob in repo.join(ref):
+                    outfile.write(blob)
+            except KeyError as e:
+                outfile.flush()
+                log('error: %s\n' % e)
+                ret = 1
 
     sys.exit(ret)