From 6ee589cd1a77b8b2bddeb8c334fc316940028eb8 Mon Sep 17 00:00:00 2001 From: Sam Verhasselt Date: Thu, 17 Apr 2025 17:32:19 -0700 Subject: [PATCH] feat(bin): support bun fallback runtime for codex CLI (#282) This PR adds a shell wrapper in `codex-cli/bin/codex` to detect node or bun as the runtime. It updates: - `package.json` bin entry - published files list to include bin/ - README install instructions to include `bun install -g @openai/codex` --- README.md | 2 ++ codex-cli/bin/codex | 20 ++++++++++++++++++++ codex-cli/package.json | 3 ++- 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 codex-cli/bin/codex diff --git a/README.md b/README.md index bcfbf4f4..b043d5ab 100644 --- a/README.md +++ b/README.md @@ -241,6 +241,8 @@ Below are a few bite‑size examples you can copy‑paste. Replace the text in q npm install -g @openai/codex # or yarn global add @openai/codex +# or +bun install -g @openai/codex ``` diff --git a/codex-cli/bin/codex b/codex-cli/bin/codex new file mode 100644 index 00000000..9bf96bf2 --- /dev/null +++ b/codex-cli/bin/codex @@ -0,0 +1,20 @@ +#!/usr/bin/env sh +# resolve script path in case of symlink +SOURCE="$0" +while [ -h "$SOURCE" ]; do + DIR=$(dirname "$SOURCE") + SOURCE=$(readlink "$SOURCE") + case "$SOURCE" in + /*) ;; # absolute path + *) SOURCE="$DIR/$SOURCE" ;; # relative path + esac +done +DIR=$(cd "$(dirname "$SOURCE")" && pwd) +if command -v node >/dev/null 2>&1; then + exec node "$DIR/../dist/cli.js" "$@" +elif command -v bun >/dev/null 2>&1; then + exec bun "$DIR/../dist/cli.js" "$@" +else + echo "Error: node or bun is required to run codex" >&2 + exit 1 +fi \ No newline at end of file diff --git a/codex-cli/package.json b/codex-cli/package.json index 0aee067c..64c7a25c 100644 --- a/codex-cli/package.json +++ b/codex-cli/package.json @@ -3,7 +3,7 @@ "version": "0.1.2504161510", "license": "Apache-2.0", "bin": { - "codex": "dist/cli.js" + "codex": "bin/codex" }, "type": "module", "engines": { @@ -28,6 +28,7 @@ }, "files": [ "README.md", + "bin", "dist", "src" ],