This commit is contained in:
Adam J. Stewart 2016-07-05 10:39:40 -05:00
parent e9f42c1a94
commit 199a8af7cc
2 changed files with 12 additions and 9 deletions

View File

@ -42,7 +42,8 @@ def setup_parser(subparser):
'--keep-stage', action='store_true', dest='keep_stage', '--keep-stage', action='store_true', dest='keep_stage',
help="Don't clean up staging area when command completes.") help="Don't clean up staging area when command completes.")
subparser.add_argument( subparser.add_argument(
'versions', nargs=argparse.REMAINDER, help='Versions to generate checksums for') 'versions', nargs=argparse.REMAINDER,
help='Versions to generate checksums for')
def get_checksums(versions, urls, **kwargs): def get_checksums(versions, urls, **kwargs):
@ -61,8 +62,8 @@ def get_checksums(versions, urls, **kwargs):
if i == 0 and first_stage_function: if i == 0 and first_stage_function:
first_stage_function(stage, url) first_stage_function(stage, url)
hashes.append((version, hashes.append((version, spack.util.crypto.checksum(
spack.util.crypto.checksum(hashlib.md5, stage.archive_file))) hashlib.md5, stage.archive_file)))
i += 1 i += 1
except FailedDownloadError as e: except FailedDownloadError as e:
tty.msg("Failed to fetch %s" % url) tty.msg("Failed to fetch %s" % url)
@ -79,12 +80,12 @@ def checksum(parser, args):
# If the user asked for specific versions, use those. # If the user asked for specific versions, use those.
if args.versions: if args.versions:
versions = {} versions = {}
for v in args.versions: for version in args.versions:
v = ver(v) version = ver(version)
if not isinstance(v, Version): if not isinstance(version, Version):
tty.die("Cannot generate checksums for version lists or " + tty.die("Cannot generate checksums for version lists or " +
"version ranges. Use unambiguous versions.") "version ranges. Use unambiguous versions.")
versions[v] = pkg.url_for_version(v) versions[version] = pkg.url_for_version(version)
else: else:
versions = pkg.fetch_remote_versions() versions = pkg.fetch_remote_versions()
if not versions: if not versions:
@ -111,5 +112,7 @@ def checksum(parser, args):
if not version_hashes: if not version_hashes:
tty.die("Could not fetch any versions for %s" % pkg.name) tty.die("Could not fetch any versions for %s" % pkg.name)
version_lines = [" version('%s', '%s')" % (v, h) for v, h in version_hashes] version_lines = [
" version('%s', '%s')" % (v, h) for v, h in version_hashes
]
tty.msg("Checksummed new versions of %s:" % pkg.name, *version_lines) tty.msg("Checksummed new versions of %s:" % pkg.name, *version_lines)