diy : removed global write lock on the db
This commit is contained in:
parent
74fb1029fa
commit
a3fc492d45
@ -65,43 +65,40 @@ def diy(self, args):
|
|||||||
if len(specs) > 1:
|
if len(specs) > 1:
|
||||||
tty.die("spack diy only takes one spec.")
|
tty.die("spack diy only takes one spec.")
|
||||||
|
|
||||||
# Take a write lock before checking for existence.
|
spec = specs[0]
|
||||||
with spack.installed_db.write_transaction():
|
if not spack.repo.exists(spec.name):
|
||||||
spec = specs[0]
|
tty.warn("No such package: %s" % spec.name)
|
||||||
if not spack.repo.exists(spec.name):
|
create = tty.get_yes_or_no("Create this package?", default=False)
|
||||||
tty.warn("No such package: %s" % spec.name)
|
if not create:
|
||||||
create = tty.get_yes_or_no("Create this package?", default=False)
|
tty.msg("Exiting without creating.")
|
||||||
if not create:
|
|
||||||
tty.msg("Exiting without creating.")
|
|
||||||
sys.exit(1)
|
|
||||||
else:
|
|
||||||
tty.msg("Running 'spack edit -f %s'" % spec.name)
|
|
||||||
edit_package(spec.name, spack.repo.first_repo(), None, True)
|
|
||||||
return
|
|
||||||
|
|
||||||
if not spec.versions.concrete:
|
|
||||||
tty.die(
|
|
||||||
"spack diy spec must have a single, concrete version. "
|
|
||||||
"Did you forget a package version number?")
|
|
||||||
|
|
||||||
spec.concretize()
|
|
||||||
package = spack.repo.get(spec)
|
|
||||||
|
|
||||||
if package.installed:
|
|
||||||
tty.error("Already installed in %s" % package.prefix)
|
|
||||||
tty.msg("Uninstall or try adding a version suffix for this "
|
|
||||||
"DIY build.")
|
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
else:
|
||||||
|
tty.msg("Running 'spack edit -f %s'" % spec.name)
|
||||||
|
edit_package(spec.name, spack.repo.first_repo(), None, True)
|
||||||
|
return
|
||||||
|
|
||||||
# Forces the build to run out of the current directory.
|
if not spec.versions.concrete:
|
||||||
package.stage = DIYStage(os.getcwd())
|
tty.die(
|
||||||
|
"spack diy spec must have a single, concrete version. "
|
||||||
|
"Did you forget a package version number?")
|
||||||
|
|
||||||
# TODO: make this an argument, not a global.
|
spec.concretize()
|
||||||
spack.do_checksum = False
|
package = spack.repo.get(spec)
|
||||||
|
|
||||||
package.do_install(
|
if package.installed:
|
||||||
keep_prefix=args.keep_prefix,
|
tty.error("Already installed in %s" % package.prefix)
|
||||||
install_deps=not args.ignore_deps,
|
tty.msg("Uninstall or try adding a version suffix for this DIY build.")
|
||||||
verbose=not args.quiet,
|
sys.exit(1)
|
||||||
keep_stage=True, # don't remove source dir for DIY.
|
|
||||||
dirty=args.dirty)
|
# Forces the build to run out of the current directory.
|
||||||
|
package.stage = DIYStage(os.getcwd())
|
||||||
|
|
||||||
|
# TODO: make this an argument, not a global.
|
||||||
|
spack.do_checksum = False
|
||||||
|
|
||||||
|
package.do_install(
|
||||||
|
keep_prefix=args.keep_prefix,
|
||||||
|
install_deps=not args.ignore_deps,
|
||||||
|
verbose=not args.quiet,
|
||||||
|
keep_stage=True, # don't remove source dir for DIY.
|
||||||
|
dirty=args.dirty)
|
||||||
|
Loading…
Reference in New Issue
Block a user