[28789] in Source-Commits

home help back first fref pref prev next nref lref last post

build-system commit: dacopy: Run export even on failures

daemon@ATHENA.MIT.EDU (Anders Kaseorg)
Sun May 7 06:29:49 2017

Date: Sun, 7 May 2017 06:29:45 -0400
From: Anders Kaseorg <andersk@mit.edu>
Message-Id: <201705071029.v47ATjrO002630@drugstore.mit.edu>
To: source-commits@mit.edu

https://github.com/mit-athena/build-system/commit/fd4cce0ae62d63aa669a6c058ecdf4ca700506c3
commit fd4cce0ae62d63aa669a6c058ecdf4ca700506c3
Author: Anders Kaseorg <andersk@mit.edu>
Date:   Sun May 7 00:55:50 2017 -0400

    dacopy: Run export even on failures
    
    Signed-off-by: Anders Kaseorg <andersk@mit.edu>

 dareprepro |   66 ++++++++++++++++++++++++++++++-----------------------------
 1 files changed, 34 insertions(+), 32 deletions(-)

diff --git a/dareprepro b/dareprepro
index 9f98f18..89d727c 100755
--- a/dareprepro
+++ b/dareprepro
@@ -112,38 +112,40 @@ def dacopy(moving=False):
         if not (args.override and yesreally()):
             sys.exit(1)
     to_export = []
-    for package in args.packages:
-        success, fail = [], []
-        for r in config.releases:
-            try:
-                out = reprepro.call('--export=never', 'copysrc', distro(dst, r), distro(src, r),
-                                    package)
-                if distro(dst, r) not in to_export:
-                    to_export.append(distro(dst, r))
-                print out
-                if out.startswith('Nothing to do'):
-                    continue
-                if (not moving) or \
-                        (moving and
-                         run_reprepro('--export=never', 'removesrc', distro(src, r), package)):
-                    if moving and distro(src, r) not in to_export:
-                        to_export.append(distro(src, r))
-                    success.append(r)
-                    continue
-            except subprocess.CalledProcessError as e:
-                print >>sys.stderr, e.output
-            fail.append(r)
-        if len(fail) > 0:
-            print >>sys.stderr, "FAILED to {verb} {pkg} for: {suites}".format(
-                verb=verb, pkg=package, suites=fail)
-            if package != args.packages[-1]:
-                if raw_input('Keep going? [y/N] ').lower() != 'y':
-                    sys.exit(1)
-        elif moving:
-            notify("Moved {0} from {1} to {2} for\n{3}".format(package,
-                                                               src, dst,
-                                                               success))
-    print reprepro.call('export', *to_export)
+    try:
+        for package in args.packages:
+            success, fail = [], []
+            for r in config.releases:
+                try:
+                    out = reprepro.call('--export=never', 'copysrc', distro(dst, r), distro(src, r),
+                                        package)
+                    if distro(dst, r) not in to_export:
+                        to_export.append(distro(dst, r))
+                    print out
+                    if out.startswith('Nothing to do'):
+                        continue
+                    if (not moving) or \
+                            (moving and
+                             run_reprepro('--export=never', 'removesrc', distro(src, r), package)):
+                        if moving and distro(src, r) not in to_export:
+                            to_export.append(distro(src, r))
+                        success.append(r)
+                        continue
+                except subprocess.CalledProcessError as e:
+                    print >>sys.stderr, e.output
+                fail.append(r)
+            if len(fail) > 0:
+                print >>sys.stderr, "FAILED to {verb} {pkg} for: {suites}".format(
+                    verb=verb, pkg=package, suites=fail)
+                if package != args.packages[-1]:
+                    if raw_input('Keep going? [y/N] ').lower() != 'y':
+                        sys.exit(1)
+            elif moving:
+                notify("Moved {0} from {1} to {2} for\n{3}".format(package,
+                                                                   src, dst,
+                                                                   success))
+    finally:
+        print reprepro.call('export', *to_export)
 
 def damove():
     dacopy(moving=True)

home help back first fref pref prev next nref lref last post