diff options
Diffstat (limited to 'lib/spack/spack/cmd/create.py')
-rw-r--r-- | lib/spack/spack/cmd/create.py | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/lib/spack/spack/cmd/create.py b/lib/spack/spack/cmd/create.py index c98162aca7..5f6350c8e8 100644 --- a/lib/spack/spack/cmd/create.py +++ b/lib/spack/spack/cmd/create.py @@ -36,7 +36,7 @@ import spack.cmd import spack.cmd.checksum import spack.package import spack.url -from spack.util.naming import mod_to_class +from spack.util.naming import * import spack.util.crypto as crypto from spack.util.executable import which @@ -128,21 +128,22 @@ def create(parser, args): url = args.url # Try to deduce name and version of the new package from the URL - name, version = spack.url.parse_name_and_version(url) - - # Use a user-supplied name if one is present - name = kwargs.get(args, 'alternate_name', False) - if args.name: - name = args.name - + version = spack.url.parse_version(url) if not version: tty.die("Couldn't guess a version string from %s." % url) - if not name: - tty.die("Couldn't guess a name for this package. Try running:", "", - "spack create --name <name> <url>") - - if not spack.db.valid_name(name): + # Try to guess a name. If it doesn't work, allow the user to override. + if args.alternate_name: + name = args.alternate_name + else: + try: + name = spack.url.parse_name(url, version) + except spack.url.UndetectableNameError, e: + # Use a user-supplied name if one is present + tty.die("Couldn't guess a name for this package. Try running:", "", + "spack create --name <name> <url>") + + if not valid_module_name(name): tty.die("Package name can only contain A-Z, a-z, 0-9, '_' and '-'") tty.msg("This looks like a URL for %s version %s." % (name, version)) |