From 1aa7758dbb572aa0f92efe1e1f61b2df37aae2e5 Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Thu, 30 Sep 2021 16:54:57 +0200 Subject: match .spack literal, not as a regex (#26374) --- lib/spack/spack/directory_layout.py | 5 +++-- lib/spack/spack/filesystem_view.py | 4 ++-- lib/spack/spack/package.py | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/spack/spack/directory_layout.py b/lib/spack/spack/directory_layout.py index 563cf84f4c..762b591827 100644 --- a/lib/spack/spack/directory_layout.py +++ b/lib/spack/spack/directory_layout.py @@ -6,6 +6,7 @@ import errno import glob import os +import re import shutil import tempfile from contextlib import contextmanager @@ -88,8 +89,8 @@ class DirectoryLayout(object): self.manifest_file_name = 'install_manifest.json' @property - def hidden_file_paths(self): - return (self.metadata_dir,) + def hidden_file_regexes(self): + return (re.escape(self.metadata_dir),) def relative_path_for_spec(self, spec): _check_concrete(spec) diff --git a/lib/spack/spack/filesystem_view.py b/lib/spack/spack/filesystem_view.py index 9b273934d9..26457c0f60 100644 --- a/lib/spack/spack/filesystem_view.py +++ b/lib/spack/spack/filesystem_view.py @@ -406,7 +406,7 @@ class YamlFilesystemView(FilesystemView): ignore = ignore or (lambda f: False) ignore_file = match_predicate( - self.layout.hidden_file_paths, ignore) + self.layout.hidden_file_regexes, ignore) # check for dir conflicts conflicts = tree.find_dir_conflicts(view_dst, ignore_file) @@ -432,7 +432,7 @@ class YamlFilesystemView(FilesystemView): ignore = ignore or (lambda f: False) ignore_file = match_predicate( - self.layout.hidden_file_paths, ignore) + self.layout.hidden_file_regexes, ignore) merge_map = tree.get_file_map(view_dst, ignore_file) pkg.remove_files_from_view(self, merge_map) diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py index 690ce075cb..b3dbb5a2b5 100644 --- a/lib/spack/spack/package.py +++ b/lib/spack/spack/package.py @@ -1952,7 +1952,7 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)): installed = set(os.listdir(self.prefix)) installed.difference_update( - spack.store.layout.hidden_file_paths) + spack.store.layout.hidden_file_regexes) if not installed: raise InstallError( "Install failed for %s. Nothing was installed!" % self.name) -- cgit v1.2.3-60-g2f50