Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 buildNpmPackage, 4 fetchFromGitHub, 5 fetchNpmDeps, 6 gitUpdater, 7}: 8 9buildNpmPackage (finalAttrs: { 10 pname = "gemini-cli"; 11 version = "0.1.14"; 12 13 src = fetchFromGitHub { 14 owner = "google-gemini"; 15 repo = "gemini-cli"; 16 tag = "v${finalAttrs.version}"; 17 hash = "sha256-u73aqh7WnfetHj/64/HyzSR6aJXRKt0OXg3bddhhQq8="; 18 }; 19 20 npmDeps = fetchNpmDeps { 21 inherit (finalAttrs) src; 22 hash = "sha256-9T31QlffPP6+ryRVN/7t0iMo+2AgwPb6l6CkYh6839U="; 23 }; 24 25 preConfigure = '' 26 mkdir -p packages/generated 27 echo "export const GIT_COMMIT_INFO = { commitHash: '${finalAttrs.src.rev}' };" > packages/generated/git-commit.ts 28 ''; 29 30 installPhase = '' 31 runHook preInstall 32 mkdir -p $out/{bin,share/gemini-cli} 33 34 cp -r node_modules $out/share/gemini-cli/ 35 36 rm -f $out/share/gemini-cli/node_modules/@google/gemini-cli 37 rm -f $out/share/gemini-cli/node_modules/@google/gemini-cli-core 38 rm -f $out/share/gemini-cli/node_modules/gemini-cli-vscode-ide-companion 39 cp -r packages/cli $out/share/gemini-cli/node_modules/@google/gemini-cli 40 cp -r packages/core $out/share/gemini-cli/node_modules/@google/gemini-cli-core 41 42 ln -s $out/share/gemini-cli/node_modules/@google/gemini-cli/dist/index.js $out/bin/gemini 43 runHook postInstall 44 ''; 45 46 postInstall = '' 47 chmod +x "$out/bin/gemini" 48 ''; 49 50 passthru.updateScript = gitUpdater { }; 51 52 meta = { 53 description = "AI agent that brings the power of Gemini directly into your terminal"; 54 homepage = "https://github.com/google-gemini/gemini-cli"; 55 license = lib.licenses.asl20; 56 maintainers = with lib.maintainers; [ donteatoreo ]; 57 platforms = lib.platforms.all; 58 mainProgram = "gemini"; 59 }; 60})