Merge pull request #201518 from hacker1024/package/github-copilot-intellij-agent
This commit is contained in:
commit
a21c873f01
|
@ -0,0 +1,82 @@
|
|||
{ stdenv, lib, fetchurl, unzip }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "github-copilot-intellij-agent";
|
||||
version = "1.2.8.2631";
|
||||
|
||||
src = fetchurl {
|
||||
name = "${pname}-${version}-plugin.zip";
|
||||
url = "https://plugins.jetbrains.com/plugin/download?updateId=341846";
|
||||
hash = "sha256-0nnSMdx9Vb2WyNHreOJMP15K1+AII/kCEAOiFK5Mhik=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip ];
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
unzip -p $src github-copilot-intellij/copilot-agent/bin/copilot-agent-${
|
||||
if stdenv.isDarwin then (if stdenv.isAarch64 then "macos-arm64" else "macos") else "linux"
|
||||
} | install -m755 /dev/stdin $out/bin/copilot-agent
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# https://discourse.nixos.org/t/unrelatable-error-when-working-with-patchelf/12043
|
||||
# https://github.com/NixOS/nixpkgs/blob/db0d8e10fc1dec84f1ccb111851a82645aa6a7d3/pkgs/development/web/now-cli/default.nix
|
||||
preFixup = let
|
||||
binaryLocation = "$out/bin/copilot-agent";
|
||||
libPath = lib.makeLibraryPath [ stdenv.cc.cc ];
|
||||
in ''
|
||||
orig_size=$(stat --printf=%s ${binaryLocation})
|
||||
|
||||
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ${binaryLocation}
|
||||
patchelf --set-rpath ${libPath} ${binaryLocation}
|
||||
chmod +x ${binaryLocation}
|
||||
|
||||
new_size=$(stat --printf=%s ${binaryLocation})
|
||||
|
||||
var_skip=20
|
||||
var_select=22
|
||||
shift_by=$(expr $new_size - $orig_size)
|
||||
|
||||
function fix_offset {
|
||||
location=$(grep -obUam1 "$1" ${binaryLocation} | cut -d: -f1)
|
||||
location=$(expr $location + $var_skip)
|
||||
value=$(dd if=${binaryLocation} iflag=count_bytes,skip_bytes skip=$location \
|
||||
bs=1 count=$var_select status=none)
|
||||
value=$(expr $shift_by + $value)
|
||||
echo -n $value | dd of=${binaryLocation} bs=1 seek=$location conv=notrunc
|
||||
}
|
||||
|
||||
fix_offset PAYLOAD_POSITION
|
||||
fix_offset PRELUDE_POSITION
|
||||
'';
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
meta = rec {
|
||||
description = "The GitHub copilot IntelliJ plugin's native component";
|
||||
longDescription = ''
|
||||
The GitHub copilot IntelliJ plugin's native component.
|
||||
bin/copilot-agent must be symlinked into the plugin directory, replacing the existing binary.
|
||||
|
||||
For example:
|
||||
|
||||
```shell
|
||||
ln -fs /run/current-system/sw/bin/copilot-agent ~/.local/share/JetBrains/IntelliJIdea2022.2/github-copilot-intellij/copilot-agent/bin/copilot-agent-linux
|
||||
```
|
||||
'';
|
||||
homepage = "https://plugins.jetbrains.com/plugin/17718-github-copilot";
|
||||
downloadPage = homepage;
|
||||
changelog = homepage;
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = with lib.maintainers; [ hacker1024 ];
|
||||
mainProgram = "copilot-agent";
|
||||
platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
||||
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
|
||||
};
|
||||
}
|
|
@ -3548,6 +3548,8 @@ with pkgs;
|
|||
|
||||
github-commenter = callPackage ../development/tools/github-commenter { };
|
||||
|
||||
github-copilot-intellij-agent = callPackage ../development/tools/github-copilot-intellij-agent { };
|
||||
|
||||
github-desktop = callPackage ../applications/version-management/github-desktop {
|
||||
openssl = openssl_1_1;
|
||||
curl = curl.override { openssl = openssl_1_1; };
|
||||
|
|
Loading…
Reference in a new issue