diff --git a/var/spack/repos/builtin/packages/grep/package.py b/var/spack/repos/builtin/packages/grep/package.py index 1ff968569f99f8..a8f2927469f8d8 100644 --- a/var/spack/repos/builtin/packages/grep/package.py +++ b/var/spack/repos/builtin/packages/grep/package.py @@ -2,6 +2,8 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re + from spack.package import * @@ -14,6 +16,8 @@ class Grep(AutotoolsPackage): license("GPL-3.0-or-later") + executables = ["^grep$"] + version("3.11", sha256="1db2aedde89d0dea42b16d9528f894c8d15dae4e190b59aecc78f5a951276eab") version("3.10", sha256="24efa5b595fb5a7100879b51b8868a0bb87a71c183d02c4c602633b88af6855b") version("3.9", sha256="abcd11409ee23d4caf35feb422e53bbac867014cfeed313bb5f488aca170b599") @@ -29,6 +33,14 @@ class Grep(AutotoolsPackage): depends_on("pcre2", when="@3.8:+pcre") depends_on("pcre", when="@:3.7+pcre") + @classmethod + def determine_version(cls, exe): + output = Executable(exe)("--version", output=str, error=str) + # Example output: + # grep (GNU grep) 3.11 + match = re.search(r"^grep \(GNU grep\) ([0-9.]+)", output) + return match.group(1) if match else None + def configure_args(self): args = []