mirror of
https://github.com/openai/codex.git
synced 2026-09-07 15:40:00 +00:00
Teach the Codex package builder to fetch the prebuilt zsh fork from a checked-in DotSlash manifest and install it under codex-resources/zsh/bin/zsh when an artifact is available for the package target. Generalize the DotSlash download/cache/verify helper previously embedded in ripgrep packaging so additional checked-in DotSlash manifests can use the same SHA-256 and size validation path. Add install-context support for locating the bundled zsh fork and thread that path through config loading as the lowest-precedence zsh_path default, preserving explicit CLI/profile/global config values. Also avoid preserving platform-specific file metadata when copying executables into the package directory so package smoke tests can use macOS system binaries as inputs.
35 lines
885 B
Python
35 lines
885 B
Python
from pathlib import Path
|
|
|
|
from .dotslash import fetch_dotslash_executable
|
|
from .targets import REPO_ROOT
|
|
from .targets import TargetSpec
|
|
from .targets import resolve_input_path
|
|
|
|
|
|
RG_MANIFEST = REPO_ROOT / "codex-cli" / "bin" / "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,
|
|
executable=not spec.is_windows,
|
|
)
|
|
if rg_bin is None:
|
|
raise AssertionError("ripgrep is required for all package targets")
|
|
return rg_bin
|