From 84a3d32aa36f8af902ef67a58ce1944050bd7e1d Mon Sep 17 00:00:00 2001 From: Jordan Galby <67924449+Jordan474@users.noreply.github.com> Date: Tue, 8 Nov 2022 03:58:19 +0100 Subject: Fix missing "*.spack*" files in views (#30980) All files/dirs containing ".spack" anywhere their name were ignored when generating a spack view. For example, this happened with the 'r' package. --- .../packages/view-not-ignored/package.py | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 var/spack/repos/builtin.mock/packages/view-not-ignored/package.py (limited to 'var') diff --git a/var/spack/repos/builtin.mock/packages/view-not-ignored/package.py b/var/spack/repos/builtin.mock/packages/view-not-ignored/package.py new file mode 100644 index 0000000000..3342de9899 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/view-not-ignored/package.py @@ -0,0 +1,46 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import os.path + +from spack.package import * + + +class ViewNotIgnored(Package): + """Install files that should not be ignored by spack.""" + + homepage = "http://www.spack.org" + url = "http://www.spack.org/downloads/aml-1.0.tar.gz" + has_code = False + + version("0.1.0", sha256="cc89a8768693f1f11539378b21cdca9f0ce3fc5cb564f9b3e4154a051dcea69b") + + install_test_files = [ + "foo.spack", + ".spack.bar", + "aspack", + "bin/foo.spack", + "bin/.spack.bar", + "bin/aspack", + ] + + def install(self, spec, prefix): + for test_file in self.install_test_files: + path = os.path.join(prefix, test_file) + mkdirp(os.path.dirname(path)) + with open(path, "w") as f: + f.write(test_file) + + @classmethod + def assert_installed(cls, prefix): + for test_file in cls.install_test_files: + path = os.path.join(prefix, test_file) + assert os.path.exists(path), "Missing installed file: {}".format(path) + + @classmethod + def assert_not_installed(cls, prefix): + for test_file in cls.install_test_files: + path = os.path.join(prefix, test_file) + assert not os.path.exists(path), "File was not uninstalled: {}".format(path) -- cgit v1.2.3-60-g2f50