fzf: add v0.60.0, improve styling (#49059)
This commit is contained in:
parent
7e65c57861
commit
6d35a75c4f
@ -1,23 +1,31 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from spack.package import *
|
from spack.package import *
|
||||||
|
|
||||||
|
|
||||||
class Fzf(MakefilePackage):
|
class Fzf(MakefilePackage):
|
||||||
"""fzf is a general-purpose command-line fuzzy finder."""
|
"""A general-purpose command-line fuzzy finder that provides fast, interactive
|
||||||
|
filtering for files, processes, git commits, and more. It supports fuzzy
|
||||||
|
search with real-time preview and various input sources."""
|
||||||
|
|
||||||
homepage = "https://github.com/junegunn/fzf"
|
homepage = "https://github.com/junegunn/fzf"
|
||||||
url = "https://github.com/junegunn/fzf/archive/v0.54.0.tar.gz"
|
url = "https://github.com/junegunn/fzf/archive/v0.54.0.tar.gz"
|
||||||
|
git = "https://github.com/junegunn/fzf.git"
|
||||||
|
|
||||||
maintainers("alecbcs")
|
maintainers("alecbcs")
|
||||||
|
|
||||||
executables = ["^fzf$"]
|
|
||||||
|
|
||||||
license("MIT")
|
license("MIT")
|
||||||
|
|
||||||
|
sanity_check_is_file = ["bin/fzf"]
|
||||||
|
sanity_check_is_dir = ["share/fzf/shell"]
|
||||||
|
|
||||||
|
# Versions from newest to oldest
|
||||||
|
version("master", branch="master")
|
||||||
|
version("0.60.0", sha256="69255fd9301e491b6ac6788bf1caf5d4f70d9209b4b8ab70ceb1caf6a69b5c16")
|
||||||
version("0.57.0", sha256="d4e8e25fad2d3f75943b403c40b61326db74b705bf629c279978fdd0ceb1f97c")
|
version("0.57.0", sha256="d4e8e25fad2d3f75943b403c40b61326db74b705bf629c279978fdd0ceb1f97c")
|
||||||
version("0.56.2", sha256="1d67edb3e3ffbb14fcbf786bfcc0b5b8d87db6a0685135677b8ef4c114d2b864")
|
version("0.56.2", sha256="1d67edb3e3ffbb14fcbf786bfcc0b5b8d87db6a0685135677b8ef4c114d2b864")
|
||||||
version("0.55.0", sha256="805383f71bca7f8fb271ecd716852aea88fd898d5027d58add9e43df6ea766da")
|
version("0.55.0", sha256="805383f71bca7f8fb271ecd716852aea88fd898d5027d58add9e43df6ea766da")
|
||||||
@ -33,39 +41,49 @@ class Fzf(MakefilePackage):
|
|||||||
version("0.41.1", sha256="982682eaac377c8a55ae8d7491fcd0e888d6c13915d01da9ebb6b7c434d7f4b5")
|
version("0.41.1", sha256="982682eaac377c8a55ae8d7491fcd0e888d6c13915d01da9ebb6b7c434d7f4b5")
|
||||||
version("0.40.0", sha256="9597f297a6811d300f619fff5aadab8003adbcc1566199a43886d2ea09109a65")
|
version("0.40.0", sha256="9597f297a6811d300f619fff5aadab8003adbcc1566199a43886d2ea09109a65")
|
||||||
|
|
||||||
depends_on("go@1.17:", type="build")
|
# Variants
|
||||||
depends_on("go@1.20:", type="build", when="@0.49.0:")
|
|
||||||
|
|
||||||
variant("vim", default=False, description="Install vim plugins for fzf")
|
variant("vim", default=False, description="Install vim plugins for fzf")
|
||||||
|
|
||||||
|
# Build dependencies
|
||||||
|
depends_on("go@1.20:", type="build", when="@0.49.0:")
|
||||||
|
depends_on("go@1.17:", type="build")
|
||||||
|
|
||||||
|
executables = ["^fzf$"]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def determine_version(cls, exe):
|
def determine_version(cls, exe):
|
||||||
|
"""Determine version of installed fzf executable."""
|
||||||
output = Executable(exe)("--version", output=str, error=str)
|
output = Executable(exe)("--version", output=str, error=str)
|
||||||
match = re.match(r"(^[\d.]+)", output)
|
match = re.match(r"(^[\d.]+)", output)
|
||||||
return match.group(1) if match else None
|
return match.group(1) if match else None
|
||||||
|
|
||||||
def url_for_version(self, version):
|
def url_for_version(self, version):
|
||||||
|
"""Generate download URL for a specific version."""
|
||||||
base = "refs/tags/v" if self.spec.satisfies("@:0.53.0") else ""
|
base = "refs/tags/v" if self.spec.satisfies("@:0.53.0") else ""
|
||||||
return f"https://github.com/junegunn/fzf/archive/{base}{version}.tar.gz"
|
return f"https://github.com/junegunn/fzf/archive/{base}{version}.tar.gz"
|
||||||
|
|
||||||
def setup_build_environment(self, env):
|
def setup_build_environment(self, env):
|
||||||
# Point GOPATH at the top of the staging dir for the build step.
|
"""Set up the build environment for fzf."""
|
||||||
|
# Point GOPATH at the top of the staging dir for the build step
|
||||||
env.prepend_path("GOPATH", self.stage.path)
|
env.prepend_path("GOPATH", self.stage.path)
|
||||||
|
|
||||||
# Set required environment variables since we
|
# Set required environment variables for non-git builds
|
||||||
# are not using git to pull down the repository.
|
|
||||||
env.set("FZF_VERSION", self.spec.version)
|
env.set("FZF_VERSION", self.spec.version)
|
||||||
env.set("FZF_REVISION", "tarball")
|
env.set("FZF_REVISION", "tarball")
|
||||||
|
|
||||||
def install(self, spec, prefix):
|
def install(self, spec, prefix):
|
||||||
|
"""Install fzf and its components."""
|
||||||
make("install")
|
make("install")
|
||||||
|
|
||||||
|
# Install binary
|
||||||
mkdir(prefix.bin)
|
mkdir(prefix.bin)
|
||||||
install("bin/fzf", prefix.bin)
|
install("bin/fzf", prefix.bin)
|
||||||
|
|
||||||
|
# Install shell integration scripts
|
||||||
mkdirp(prefix.share.fzf.shell)
|
mkdirp(prefix.share.fzf.shell)
|
||||||
install_tree("shell", prefix.share.fzf.shell)
|
install_tree("shell", prefix.share.fzf.shell)
|
||||||
|
|
||||||
|
# Install vim plugin if requested
|
||||||
if spec.satisfies("+vim"):
|
if spec.satisfies("+vim"):
|
||||||
mkdirp(prefix.share.fzf.plugins)
|
mkdirp(prefix.share.fzf.plugins)
|
||||||
install("plugin/fzf.vim", prefix.share.fzf.plugins)
|
install("plugin/fzf.vim", prefix.share.fzf.plugins)
|
||||||
|
Loading…
Reference in New Issue
Block a user