From d94490b18a1a8dc16b0d49159254f68578885e5d Mon Sep 17 00:00:00 2001 From: EdenQwQ Date: Sun, 27 Jul 2025 01:23:29 +0800 Subject: [PATCH] add qwen-code --- home/programs/utils/default.nix | 1 + pkgs/default.nix | 1 + pkgs/qwen-code.nix | 56 +++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 pkgs/qwen-code.nix diff --git a/home/programs/utils/default.nix b/home/programs/utils/default.nix index 764117e..a53fb9c 100644 --- a/home/programs/utils/default.nix +++ b/home/programs/utils/default.nix @@ -44,6 +44,7 @@ wl-color-picker (config.lib.misc.addFlags "--wayland-text-input-version=3" "cherry-studio" cherry-studio) gemini-cli + qwen-code ]; imports = [ ./eye-candy.nix diff --git a/pkgs/default.nix b/pkgs/default.nix index 64ac5db..d79e908 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -8,4 +8,5 @@ custom-colorschemes = pkgs.callPackage ./customColorSchemes { }; wallpapers = pkgs.callPackage ./wallpapers.nix { }; maple-mono-variable = pkgs.callPackage ./maple-mono-variable.nix { }; + qwen-code = pkgs.callPackage ./qwen-code.nix { }; } diff --git a/pkgs/qwen-code.nix b/pkgs/qwen-code.nix new file mode 100644 index 0000000..8f7f318 --- /dev/null +++ b/pkgs/qwen-code.nix @@ -0,0 +1,56 @@ +# copied from https://github.com/NixOS/nixpkgs/issues/427851#issuecomment-3115131890 +{ + lib, + buildNpmPackage, + fetchFromGitHub, + fetchNpmDeps, + nix-update-script, +}: + +buildNpmPackage (finalAttrs: { + pname = "qwen-code"; + version = "unstable-2025-07-24"; + + src = fetchFromGitHub { + owner = "sid115"; + repo = "qwen-code"; + rev = "e082e301bf2e779435237aab56927b204ead5d2e"; + hash = "sha256-qX2ssemIt3Ijl9GxCgurcXg5B5ZC2D6cRjGqD9G8Ksg="; + }; + + npmDeps = fetchNpmDeps { + inherit (finalAttrs) src; + hash = "sha256-zzF/9V+g3uxZxCGmIIHplDX8IRd2txbLj9lco+pkkWg="; + }; + + buildPhase = '' + runHook preBuild + + npm run generate + npm run bundle + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + cp -r bundle/* $out/ + substituteInPlace $out/gemini.js --replace '/usr/bin/env node' "$(type -p node)" + ln -s $out/gemini.js $out/bin/qwen-code + + runHook postInstall + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Qwen-code is a coding agent that lives in digital world"; + homepage = "https://github.com/QwenLM/qwen-code"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ ]; + mainProgram = "qwen-code"; + platforms = lib.platforms.all; + }; +})