summaryrefslogtreecommitdiff
path: root/lib/spack/spack/environment/environment.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/spack/spack/environment/environment.py')
-rw-r--r--lib/spack/spack/environment/environment.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/spack/spack/environment/environment.py b/lib/spack/spack/environment/environment.py
index cd2a5a7533..3fd75f3d70 100644
--- a/lib/spack/spack/environment/environment.py
+++ b/lib/spack/spack/environment/environment.py
@@ -330,16 +330,21 @@ def create_in_dir(
if with_view is None and keep_relative:
return Environment(manifest_dir)
- manifest = EnvironmentManifestFile(manifest_dir)
+ try:
+ manifest = EnvironmentManifestFile(manifest_dir)
- if with_view is not None:
- manifest.set_default_view(with_view)
+ if with_view is not None:
+ manifest.set_default_view(with_view)
- if not keep_relative and init_file is not None and str(init_file).endswith(manifest_name):
- init_file = pathlib.Path(init_file)
- manifest.absolutify_dev_paths(init_file.parent)
+ if not keep_relative and init_file is not None and str(init_file).endswith(manifest_name):
+ init_file = pathlib.Path(init_file)
+ manifest.absolutify_dev_paths(init_file.parent)
+
+ manifest.flush()
- manifest.flush()
+ except spack.config.ConfigFormatError as e:
+ shutil.rmtree(manifest_dir)
+ raise e
return Environment(manifest_dir)