Package kotlin-language-server and jdtls again
This commit is contained in:
parent
56955f9898
commit
5726b5211f
4 changed files with 102 additions and 36 deletions
83
flake.nix
83
flake.nix
|
@ -15,42 +15,53 @@
|
|||
utils.url = "github:gytis-ivaskevicius/flake-utils-plus/master";
|
||||
};
|
||||
|
||||
outputs = inputs@{ self, nixpkgs, agenix, emacs-overlay, home-manager, utils }: utils.lib.systemFlake {
|
||||
inherit self inputs;
|
||||
# This config can only be evaluated on x86_64-linux because of IFD
|
||||
supportedSystems = [ "x86_64-linux" ];
|
||||
channels.nixpkgs = {
|
||||
input = nixpkgs;
|
||||
patches = map (patch: ./patches + "/${patch}") (builtins.filter (x: x != ".keep") (builtins.attrNames (builtins.readDir ./patches)));
|
||||
overlaysBuilder = _: [ emacs-overlay.overlay ];
|
||||
};
|
||||
hostDefaults = {
|
||||
modules = [
|
||||
({ lib, ... }: {
|
||||
environment.etc = lib.mapAttrs' (key: val: { name = "channels/${key}"; value = { source = val.outPath; }; }) inputs;
|
||||
nix.nixPath = [ "/etc/channels" ];
|
||||
})
|
||||
utils.nixosModules.saneFlakeDefaults
|
||||
agenix.nixosModules.age
|
||||
home-manager.nixosModules.home-manager
|
||||
./modules
|
||||
];
|
||||
extraArgs = { nixosConfigurations = self.nixosConfigurations; };
|
||||
};
|
||||
hosts = {
|
||||
kharbranth.modules = [ ./machines/kharbranth ];
|
||||
kholinar.modules = [ ./machines/kholinar ];
|
||||
lasting-integrity.modules = [ ./machines/lasting-integrity ];
|
||||
urithiru.modules = [ ./machines/urithiru ];
|
||||
};
|
||||
devShellBuilder = channels:
|
||||
let pkgs = channels.nixpkgs; in
|
||||
pkgs.mkShell {
|
||||
buildInputs = [
|
||||
pkgs.nixpkgs-fmt
|
||||
(pkgs.writeShellScriptBin "fetchpatch" "curl -L https://github.com/NixOS/nixpkgs/pull/$1.patch -o patches/$1.patch")
|
||||
agenix.defaultPackage.x86_64-linux
|
||||
outputs = inputs@{ self, nixpkgs, agenix, emacs-overlay, home-manager, utils }:
|
||||
let
|
||||
customPackages = callPackage: {
|
||||
jdtls = callPackage ./packages/jdtls { };
|
||||
kotlin-language-server = callPackage ./packages/kotlin-language-server { };
|
||||
}; in
|
||||
utils.lib.systemFlake {
|
||||
inherit self inputs;
|
||||
# This config can only be evaluated on x86_64-linux because of IFD
|
||||
supportedSystems = [ "x86_64-linux" ];
|
||||
channels.nixpkgs = {
|
||||
input = nixpkgs;
|
||||
patches = map (patch: ./patches + "/${patch}") (builtins.filter (x: x != ".keep") (builtins.attrNames (builtins.readDir ./patches)));
|
||||
overlaysBuilder = _: [
|
||||
emacs-overlay.overlay
|
||||
(self: super: customPackages self.callPackage)
|
||||
];
|
||||
};
|
||||
};
|
||||
hostDefaults = {
|
||||
modules = [
|
||||
({ lib, ... }: {
|
||||
environment.etc = lib.mapAttrs' (key: val: { name = "channels/${key}"; value = { source = val.outPath; }; }) inputs;
|
||||
nix.nixPath = [ "/etc/channels" ];
|
||||
})
|
||||
utils.nixosModules.saneFlakeDefaults
|
||||
agenix.nixosModules.age
|
||||
home-manager.nixosModules.home-manager
|
||||
./modules
|
||||
];
|
||||
extraArgs = { nixosConfigurations = self.nixosConfigurations; };
|
||||
};
|
||||
hosts = {
|
||||
kharbranth.modules = [ ./machines/kharbranth ];
|
||||
kholinar.modules = [ ./machines/kholinar ];
|
||||
lasting-integrity.modules = [ ./machines/lasting-integrity ];
|
||||
urithiru.modules = [ ./machines/urithiru ];
|
||||
};
|
||||
devShellBuilder = channels:
|
||||
let pkgs = channels.nixpkgs; in
|
||||
pkgs.mkShell {
|
||||
buildInputs = [
|
||||
pkgs.nixpkgs-fmt
|
||||
(pkgs.writeShellScriptBin "fetchpatch" "curl -L https://github.com/NixOS/nixpkgs/pull/$1.patch -o patches/$1.patch")
|
||||
agenix.defaultPackage.x86_64-linux
|
||||
];
|
||||
};
|
||||
packagesBuilder = channels:
|
||||
let pkgs = channels.nixpkgs; in customPackages pkgs.callPackage;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -36,6 +36,8 @@
|
|||
home-manager.users.charlotte = { ... }: {
|
||||
home.packages = with pkgs; [
|
||||
google-chrome
|
||||
jdtls
|
||||
kotlin-language-server
|
||||
libreoffice-fresh
|
||||
mpv
|
||||
okular
|
||||
|
|
34
packages/jdtls/default.nix
Normal file
34
packages/jdtls/default.nix
Normal file
|
@ -0,0 +1,34 @@
|
|||
{ stdenv, bash, fetchurl, jdk11, ... }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "jdtls";
|
||||
version = "1.1.2";
|
||||
src = fetchurl {
|
||||
url = "http://download.eclipse.org/${pname}/milestones/${version}/jdt-language-server-${version}-202105191944.tar.gz";
|
||||
sha256 = "1drx4fs63jr1cbsya6smwfx8rxpdlwb9sg3y80xfnr80dh0mh2c4";
|
||||
};
|
||||
sourceRoot = ".";
|
||||
buildPhase = "true";
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/java/jdtls
|
||||
mv config_* features plugins $out/share/java/jdtls
|
||||
mkdir $out/bin
|
||||
cat >$out/bin/jdtls <<HERE
|
||||
#!${bash}/bin/bash
|
||||
tmp_dir=\$(mktemp -d /tmp/jdtls.XXXXX)
|
||||
cp -R $out/share/java/jdtls/config_linux \$tmp_dir
|
||||
chmod -R u=rwX \$tmp_dir
|
||||
trap "{ rm -rf \$tmp_dir; }" 0
|
||||
${jdk11}/bin/java \
|
||||
-Declipse.application=org.eclipse.jdt.ls.core.id1 \
|
||||
-Dosgi.bundles.defaultStartLevel=4 \
|
||||
-Declipse.product=org.eclipse.jdt.ls.core.product \
|
||||
-noverify \
|
||||
-Xms1G \
|
||||
-jar $out/share/java/jdtls/plugins/org.eclipse.equinox.launcher_*.jar \
|
||||
-configuration "\$tmp_dir/config_linux" \
|
||||
"\$@"
|
||||
HERE
|
||||
chmod +x $out/bin/jdtls
|
||||
'';
|
||||
}
|
19
packages/kotlin-language-server/default.nix
Normal file
19
packages/kotlin-language-server/default.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{ lib, stdenv, fetchzip, jdk11, makeWrapper, ... }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kotlin-language-server";
|
||||
version = "1.1.2";
|
||||
src = fetchzip {
|
||||
url = "https://github.com/fwcd/${pname}/releases/download/${version}/server.zip";
|
||||
sha256 = "021h9239lr19r9r726hfjlfgwa8fl4m8vfryzsg8fbm0hsziklkz";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r $src/* $out/
|
||||
chmod -R u=rwX $out
|
||||
wrapProgram $out/bin/kotlin-language-server --set JAVA_HOME ${jdk11}
|
||||
'';
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue