Bugfix in create and checksum

This commit is contained in:
Todd Gamblin
2014-12-08 22:49:49 -08:00
parent 105420f372
commit c3fce7b77f
2 changed files with 19 additions and 19 deletions

View File

@@ -56,7 +56,6 @@ def get_checksums(versions, urls, **kwargs):
first_stage_function = kwargs.get('first_stage_function', None) first_stage_function = kwargs.get('first_stage_function', None)
keep_stage = kwargs.get('keep_stage', False) keep_stage = kwargs.get('keep_stage', False)
tty.msg("Downloading...") tty.msg("Downloading...")
hashes = [] hashes = []
for i, (url, version) in enumerate(zip(urls, versions)): for i, (url, version) in enumerate(zip(urls, versions)):
@@ -98,7 +97,7 @@ def checksum(parser, args):
if not versions: if not versions:
tty.die("Could not fetch any versions for %s." % pkg.name) tty.die("Could not fetch any versions for %s." % pkg.name)
sorted_versions = list(reversed(sorted(versions))) sorted_versions = sorted(versions, reverse=True)
tty.msg("Found %s versions of %s." % (len(versions), pkg.name), tty.msg("Found %s versions of %s." % (len(versions), pkg.name),
*spack.cmd.elide_list( *spack.cmd.elide_list(

View File

@@ -28,6 +28,7 @@
import re import re
from contextlib import closing from contextlib import closing
from external.ordereddict import OrderedDict
import llnl.util.tty as tty import llnl.util.tty as tty
from llnl.util.filesystem import mkdirp from llnl.util.filesystem import mkdirp
@@ -160,32 +161,32 @@ def create(parser, args):
mkdirp(os.path.dirname(pkg_path)) mkdirp(os.path.dirname(pkg_path))
versions = spack.package.find_versions_of_archive(url) versions = spack.package.find_versions_of_archive(url)
rkeys = sorted(versions.keys(), reverse=True)
versions = OrderedDict(zip(rkeys, (versions[v] for v in rkeys)))
archives_to_fetch = 1 archives_to_fetch = 1
if not versions: if not versions:
# If the fetch failed for some reason, revert to what the user provided # If the fetch failed for some reason, revert to what the user provided
versions = { version : url } versions = { version : url }
else: elif len(versions) > 1:
urls = [spack.url.substitute_version(url, v) for v in versions] tty.msg("Found %s versions of %s:" % (len(versions), name),
if len(urls) > 1: *spack.cmd.elide_list(
tty.msg("Found %s versions of %s:" % (len(urls), name), ["%-10s%s" % (v,u) for v, u in versions.iteritems()]))
*spack.cmd.elide_list( print
["%-10s%s" % (v,u) for v, u in zip(versions, urls)])) archives_to_fetch = tty.get_number(
print "Include how many checksums in the package file?",
archives_to_fetch = tty.get_number( default=5, abort='q')
"Include how many checksums in the package file?",
default=5, abort='q')
if not archives_to_fetch: if not archives_to_fetch:
tty.msg("Aborted.") tty.msg("Aborted.")
return return
sorted_versions = list(reversed(versions.keys()))
guesser = ConfigureGuesser() guesser = ConfigureGuesser()
ver_hash_tuples = spack.cmd.checksum.get_checksums( ver_hash_tuples = spack.cmd.checksum.get_checksums(
sorted_versions[:archives_to_fetch], urls[:archives_to_fetch], versions.keys()[:archives_to_fetch],
first_stage_function=guesser, keep_stage=args.keep_stage) [versions[v] for v in versions.keys()[:archives_to_fetch]],
first_stage_function=guesser,
keep_stage=args.keep_stage)
if not ver_hash_tuples: if not ver_hash_tuples:
tty.die("Could not fetch any tarballs for %s." % name) tty.die("Could not fetch any tarballs for %s." % name)