diff options
Diffstat (limited to 'derivations/codex/node.nix')
-rw-r--r-- | derivations/codex/node.nix | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/derivations/codex/node.nix b/derivations/codex/node.nix new file mode 100644 index 0000000..7cf50d5 --- /dev/null +++ b/derivations/codex/node.nix @@ -0,0 +1,59 @@ +{ + lib, + mkDerivation, + fetchFromGitHub, + pnpm, + node, + jq, + makeWrapper, +}: +mkDerivation (finalAttrs: { + pname = "codex-cli"; + version = "0.8.0"; + src = fetchFromGitHub { + owner = "openai"; + repo = "codex"; + rev = "4082246f6aac288a817330b92cfd5573df61f0e7"; + # tag = "v${finalAttrs.version}"; + sha256 = "DAenod/w9BydYdYsOnuLj7kCQRcTnZ81tf4MhLUug6c="; + }; + pnpmDeps = pnpm.fetchDeps { + inherit (finalAttrs) pname version src; + hash = "sha256-otogkSsKJ5j1BY00y4SRhL9pm7CK9nmzVisvGCDIMlU="; + }; + nativeBuildInputs = [ + node + pnpm + pnpm.configHook + jq + makeWrapper + ]; + pnpmInstallFlags = ["--frozen-lockfile"]; + + buildPhase = '' + runHook preBuild + pnpm install --offline --frozen-lockfile + pnpm --filter ./codex-cli... run build + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + pkgRoot=$out/lib/node_modules/${final.pname} + mkdir -p $pkgRoot + cp -R codex-cli/* $pkgRoot/ + + path=$(jq -r '.bin.codex' codex-cli/package.json) + mkdir -p $out/bin + makeWrapper ${node}/bin/node $out/bin/codex --add-flags "$pkgRoot/$path" + + runHook postInstall + ''; + + meta = with lib; { + description = "OpenAI Codex command‑line interface"; + license = licenses.asl20; + homepage = "https://github.com/openai/codex"; + }; +}) |