From d1f42ac6d1c7a6854b7f04f278a24b93b48836a5 Mon Sep 17 00:00:00 2001 From: Malo Bourgon Date: Wed, 30 Apr 2025 12:13:20 -0700 Subject: [PATCH 1/2] codex: 0.1.2504161510 -> 0.1.2504251709; use `pnpm` --- pkgs/by-name/co/codex/package.nix | 53 ++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/co/codex/package.nix b/pkgs/by-name/co/codex/package.nix index 2f35a543ccd3..8f907e478f52 100644 --- a/pkgs/by-name/co/codex/package.nix +++ b/pkgs/by-name/co/codex/package.nix @@ -1,24 +1,61 @@ { lib, - buildNpmPackage, + stdenv, fetchFromGitHub, + nodejs_22, # Node ≥22 is required by codex-cli + pnpm_10, + makeBinaryWrapper, versionCheckHook, }: -buildNpmPackage rec { +stdenv.mkDerivation (finalAttrs: { pname = "codex"; - version = "0.1.2504161510"; # from codex-cli/package.json + version = "0.1.2504251709"; # from codex-cli/package.json src = fetchFromGitHub { owner = "openai"; repo = "codex"; - rev = "b0ccca555685b1534a0028cb7bfdcad8fe2e477a"; - hash = "sha256-WTnP6HZfrMjUoUZL635cngpfvvjrA2Zvm74T2627GwA="; + rev = "103093f79324482020490cb658cc1a696aece3bc"; + hash = "sha256-GmMQi67HRanGKhiTKX8wgnpUbA1UwkPVe3siU4qC02Y="; }; - sourceRoot = "${src.name}/codex-cli"; + pnpmWorkspaces = [ "@openai/codex" ]; - npmDepsHash = "sha256-riVXC7T9zgUBUazH5Wq7+MjU1FepLkp9kHLSq+ZVqbs="; + nativeBuildInputs = [ + nodejs_22 + pnpm_10.configHook + makeBinaryWrapper + ]; + + pnpmDeps = pnpm_10.fetchDeps { + inherit (finalAttrs) + pname + version + src + pnpmWorkspaces + ; + hash = "sha256-pPwHjtqqaG+Zqmq6x5o+WCT1H9XuXAqFNKMzevp7wTc="; + }; + + buildPhase = '' + runHook preBuild + pnpm --filter @openai/codex run build + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + dest=$out/lib/node_modules/@openai/codex + mkdir -p "$dest" + cp -r codex-cli/dist codex-cli/bin codex-cli/package.json "$dest" + cp LICENSE README.md "$dest" + + mkdir -p $out/bin + makeBinaryWrapper ${nodejs_22}/bin/node $out/bin/codex --add-flags "$dest/bin/codex.js" + + runHook postInstall + ''; doInstallCheck = true; nativeInstallCheckInputs = [ versionCheckHook ]; @@ -30,4 +67,4 @@ buildNpmPackage rec { maintainers = [ lib.maintainers.malo ]; mainProgram = "codex"; }; -} +}) From 0818337430c2d71dd5025fe044d34ad1bb6e73ba Mon Sep 17 00:00:00 2001 From: Malo Bourgon Date: Wed, 30 Apr 2025 14:59:00 -0700 Subject: [PATCH 2/2] codex: add shell completions --- pkgs/by-name/co/codex/package.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/by-name/co/codex/package.nix b/pkgs/by-name/co/codex/package.nix index 8f907e478f52..1add11343ffa 100644 --- a/pkgs/by-name/co/codex/package.nix +++ b/pkgs/by-name/co/codex/package.nix @@ -5,6 +5,7 @@ nodejs_22, # Node ≥22 is required by codex-cli pnpm_10, makeBinaryWrapper, + installShellFiles, versionCheckHook, }: @@ -25,6 +26,7 @@ stdenv.mkDerivation (finalAttrs: { nodejs_22 pnpm_10.configHook makeBinaryWrapper + installShellFiles ]; pnpmDeps = pnpm_10.fetchDeps { @@ -54,6 +56,14 @@ stdenv.mkDerivation (finalAttrs: { mkdir -p $out/bin makeBinaryWrapper ${nodejs_22}/bin/node $out/bin/codex --add-flags "$dest/bin/codex.js" + # Install shell completions + ${lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + $out/bin/codex completion bash > codex.bash + $out/bin/codex completion zsh > codex.zsh + $out/bin/codex completion fish > codex.fish + installShellCompletion codex.{bash,zsh,fish} + ''} + runHook postInstall '';