summaryrefslogtreecommitdiff
path: root/derivations/codex/node.nix
diff options
context:
space:
mode:
Diffstat (limited to 'derivations/codex/node.nix')
-rw-r--r--derivations/codex/node.nix59
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";
+ };
+})