[28789] in Source-Commits
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)