codex / scripts /codex_package /ripgrep.py
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
2569bec verified
Raw
History Blame Contribute Delete
862 Bytes
"""Fetch ripgrep from the DotSlash manifest used by the package builder."""
from pathlib import Path
from .dotslash import fetch_dotslash_executable
from .targets import TargetSpec, resolve_input_path
RG_MANIFEST = Path(__file__).with_name("rg")
def resolve_rg_bin(spec: TargetSpec, rg_bin: Path | None) -> Path:
if rg_bin is not None:
return resolve_input_path(rg_bin, "ripgrep executable", "--rg-bin")
return fetch_rg(spec)
def fetch_rg(
spec: TargetSpec,
*,
manifest_path: Path = RG_MANIFEST,
) -> Path:
rg_bin = fetch_dotslash_executable(
spec,
manifest_path=manifest_path,
artifact_label="ripgrep",
cache_key=f"{spec.target}-rg",
dest_name=spec.rg_name,
)
if rg_bin is None:
raise AssertionError("ripgrep is required for all package targets")
return rg_bin