Skip to content

Commit a89a1f0

Browse files
authored
Merge 15f1b7e into db4a4ba
2 parents db4a4ba + 15f1b7e commit a89a1f0

1 file changed

Lines changed: 13 additions & 21 deletions

File tree

pkgs/by-name/ge/gemini-cli/package.nix

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -73,38 +73,30 @@ buildNpmPackage (finalAttrs: {
7373
nodejs_22.python
7474
];
7575

76+
npmBuildScript = "bundle";
77+
7678
installPhase = ''
7779
runHook preInstall
78-
mkdir -p $out/{bin,share/gemini-cli}
7980
81+
mkdir -p $out/{bin,share}
82+
cp -r bundle $out/share/gemini-cli
83+
84+
# We only want to keep optionalDependencies (like @lydell/node-pty) to keep the closure size small,
85+
# as regular dependencies are already bundled via esbuild into gemini.js.
86+
jq '.dependencies = {} | del(.devDependencies) | del(.workspaces)' package.json > package.json.tmp && mv package.json.tmp package.json
8087
npm prune --omit=dev
88+
rm -rf node_modules/.bin
8189
82-
# Remove python files to prevent python from getting into the closure
83-
find node_modules -name "*.py" -delete
8490
# keytar/build has gyp-mac-tool with a Python shebang that gets patched,
8591
# creating a python3 reference in the closure
86-
rm -rf node_modules/keytar/build
92+
find node_modules -path "*/build/*" -type f -not -name "*.node" -delete
93+
find node_modules -type d -empty -delete
8794
8895
cp -r node_modules $out/share/gemini-cli/
8996
90-
rm -f $out/share/gemini-cli/node_modules/@google/gemini-cli
91-
rm -f $out/share/gemini-cli/node_modules/@google/gemini-cli-core
92-
rm -f $out/share/gemini-cli/node_modules/@google/gemini-cli-a2a-server
93-
rm -f $out/share/gemini-cli/node_modules/@google/gemini-cli-test-utils
94-
rm -f $out/share/gemini-cli/node_modules/gemini-cli-vscode-ide-companion
95-
cp -r packages/cli $out/share/gemini-cli/node_modules/@google/gemini-cli
96-
cp -r packages/core $out/share/gemini-cli/node_modules/@google/gemini-cli-core
97-
cp -r packages/a2a-server $out/share/gemini-cli/node_modules/@google/gemini-cli-a2a-server
98-
99-
rm -f $out/share/gemini-cli/node_modules/@google/gemini-cli-core/dist/docs/CONTRIBUTING.md
100-
101-
ln -s $out/share/gemini-cli/node_modules/@google/gemini-cli/dist/index.js $out/bin/gemini
102-
chmod +x "$out/bin/gemini"
97+
rm -f $out/share/gemini-cli/docs/CONTRIBUTING.md
10398
104-
# Clean up any remaining references to npmDeps in node_modules metadata
105-
find $out/share/gemini-cli/node_modules -name "package-lock.json" -delete
106-
find $out/share/gemini-cli/node_modules -name ".package-lock.json" -delete
107-
find $out/share/gemini-cli/node_modules -name "config.gypi" -delete
99+
ln -s $out/share/gemini-cli/gemini.js $out/bin/gemini
108100
109101
runHook postInstall
110102
'';

0 commit comments

Comments
 (0)