From 3c793992a26ab0333aa0f5ac55bf72636fb43c23 Mon Sep 17 00:00:00 2001 From: wattmto Date: Sat, 8 Mar 2025 21:51:51 +0900 Subject: [PATCH 1/2] copilot-language-server: refactor to use GitHub release --- .../copilot-language-server/package-lock.json | 44 -------------- .../co/copilot-language-server/package.nix | 59 +++++++++++++------ .../co/copilot-language-server/update.sh | 30 ---------- 3 files changed, 42 insertions(+), 91 deletions(-) delete mode 100644 pkgs/by-name/co/copilot-language-server/package-lock.json delete mode 100755 pkgs/by-name/co/copilot-language-server/update.sh diff --git a/pkgs/by-name/co/copilot-language-server/package-lock.json b/pkgs/by-name/co/copilot-language-server/package-lock.json deleted file mode 100644 index f5f68a310487..000000000000 --- a/pkgs/by-name/co/copilot-language-server/package-lock.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "@github/copilot-language-server", - "version": "1.280.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@github/copilot-language-server", - "version": "1.280.0", - "license": "https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features", - "dependencies": { - "vscode-languageserver-protocol": "^3.17.5" - }, - "bin": { - "copilot-language-server": "dist/language-server.js" - } - }, - "node_modules/vscode-jsonrpc": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", - "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/vscode-languageserver-protocol": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", - "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", - "license": "MIT", - "dependencies": { - "vscode-jsonrpc": "8.2.0", - "vscode-languageserver-types": "3.17.5" - } - }, - "node_modules/vscode-languageserver-types": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", - "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", - "license": "MIT" - } - } -} diff --git a/pkgs/by-name/co/copilot-language-server/package.nix b/pkgs/by-name/co/copilot-language-server/package.nix index fff7ec334a6c..0e5105234f86 100644 --- a/pkgs/by-name/co/copilot-language-server/package.nix +++ b/pkgs/by-name/co/copilot-language-server/package.nix @@ -1,31 +1,53 @@ { lib, - buildNpmPackage, - fetchurl, + stdenvNoCC, + fetchzip, + nix-update-script, }: -buildNpmPackage rec { +let + arch = + { + aarch64-darwin = "arm64"; + aarch64-linux = "arm64"; + x86_64-darwin = "x64"; + x86_64-linux = "x64"; + } + ."${stdenvNoCC.hostPlatform.system}" + or (throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}"); + os = + { + aarch64-darwin = "darwin"; + aarch64-linux = "linux"; + x86_64-darwin = "darwin"; + x86_64-linux = "linux"; + } + ."${stdenvNoCC.hostPlatform.system}" + or (throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}"); +in + +stdenvNoCC.mkDerivation (finalAttrs: { pname = "copilot-language-server"; version = "1.280.0"; - src = fetchurl { - url = "https://registry.npmjs.org/@github/copilot-language-server/-/copilot-language-server-${version}.tgz"; - hash = "sha256-6UniNoKUoATY+7amMoyWmo0DxEM82Iuu2Jf8P2raWx4="; + src = fetchzip { + url = "https://github.com/github/copilot-language-server-release/releases/download/${finalAttrs.version}/copilot-language-server-native-${finalAttrs.version}.zip"; + hash = "sha256-s47WaWH0ov/UazQCOFBUAO6ZYgCmCpQ1o79KjAVJFh4="; + stripRoot = false; }; - npmDepsHash = "sha256-BtErMpXdRC0t9DNa3hKU+tct6e9K+tMP+LcbmwSJrLI="; + npmDepsHash = "sha256-PLX/mN7xu8gMh2BkkyTncP3+rJ3nBmX+pHxl0ONXbe4="; + installPhase = '' + runHook preInstall - postPatch = '' - ln -s ${./package-lock.json} package-lock.json + install -Dt "$out"/bin "${os}-${arch}"/copilot-language-server + + runHook postInstall ''; - postInstall = '' - ln -s $out/lib/node_modules/@github/copilot-language-server/dist $out/lib/node_modules/@github/dist - ''; + dontStrip = true; - dontNpmBuild = true; - - passthru.updateScript = ./update.sh; + passthru.updateScript = nix-update-script { }; meta = { description = "Use GitHub Copilot with any editor or IDE via the Language Server Protocol"; @@ -41,9 +63,12 @@ buildNpmPackage rec { mainProgram = "copilot-language-server"; platforms = [ "x86_64-linux" + "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; - maintainers = with lib.maintainers; [ arunoruto ]; + maintainers = with lib.maintainers; [ + arunoruto + ]; }; -} +}) diff --git a/pkgs/by-name/co/copilot-language-server/update.sh b/pkgs/by-name/co/copilot-language-server/update.sh deleted file mode 100755 index e708412b35f8..000000000000 --- a/pkgs/by-name/co/copilot-language-server/update.sh +++ /dev/null @@ -1,30 +0,0 @@ -#! /usr/bin/env nix-shell -#! nix-shell -i bash -p gnused nix nodejs prefetch-npm-deps wget - -set -euo pipefail -pushd "$(dirname "${BASH_SOURCE[0]}")" - -version=$(npm view @github/copilot-language-server version) -tarball="copilot-language-server-$version.tgz" -url="https://registry.npmjs.org/@github/copilot-language-server/-/$tarball" - -if [[ "$UPDATE_NIX_OLD_VERSION" == "$version" ]]; then - echo "Already up to date!" - exit 0 -fi - -sed -i 's#version = "[^"]*"#version = "'"$version"'"#' package.nix - -sha256=$(nix-prefetch-url "$url") -src_hash=$(nix-hash --to-sri --type sha256 "$sha256") -sed -i 's#hash = "[^"]*"#hash = "'"$src_hash"'"#' package.nix - -rm -f package-lock.json package.json *.tgz -wget "$url" -tar xf "$tarball" --strip-components=1 package/package.json -npm i --package-lock-only --ignore-scripts -npm_hash=$(prefetch-npm-deps package-lock.json) -sed -i 's#npmDepsHash = "[^"]*"#npmDepsHash = "'"$npm_hash"'"#' package.nix -rm -f package.json *.tgz - -popd From 9143491265056eb6491d98cfe9a9c3fdc4b5216d Mon Sep 17 00:00:00 2001 From: wattmto Date: Mon, 10 Mar 2025 06:55:56 +0900 Subject: [PATCH 2/2] copilot-language-server: add wattmto as a maintainer --- pkgs/by-name/co/copilot-language-server/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/co/copilot-language-server/package.nix b/pkgs/by-name/co/copilot-language-server/package.nix index 0e5105234f86..7921fde702fd 100644 --- a/pkgs/by-name/co/copilot-language-server/package.nix +++ b/pkgs/by-name/co/copilot-language-server/package.nix @@ -69,6 +69,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { ]; maintainers = with lib.maintainers; [ arunoruto + wattmto ]; }; })