From 476280c3ef2fef8376048a19d3f3314bd3822fdc Mon Sep 17 00:00:00 2001 From: Lgmrszd Date: Tue, 28 Jan 2025 22:45:22 +0400 Subject: [PATCH] laptop: add IDEAappwrapper to set JAVA_HOME --- hosts/laptop/home/default.nix | 8 ++++---- lib/default.nix | 29 +++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/hosts/laptop/home/default.nix b/hosts/laptop/home/default.nix index d52411d..16df0c4 100644 --- a/hosts/laptop/home/default.nix +++ b/hosts/laptop/home/default.nix @@ -94,19 +94,19 @@ # dev # Wrap idea-community to add libraries required for Minecraft Moddev jetbrains.idea-community - (mylib.appwrapper { + (mylib.IDEAappwrapper { inherit pkgs; inputpkg = jetbrains.idea-community; pkgsuffix = "mcdev-jbr17"; libraries = with pkgs; [libpulseaudio libGL glfw openal stdenv.cc.cc.lib]; - extrapathpkgs = with pkgs; [jetbrains.jdk-no-jcef-17]; + jdk = pkgs.jetbrains.jdk-no-jcef-17; }) - (mylib.appwrapper { + (mylib.IDEAappwrapper { inherit pkgs; inputpkg = jetbrains.idea-community; pkgsuffix = "mcdev-jbr21"; libraries = with pkgs; [libpulseaudio libGL glfw openal stdenv.cc.cc.lib]; - extrapathpkgs = with pkgs; [jetbrains.jdk-no-jcef]; + jdk = pkgs.jetbrains.jdk-no-jcef; }) packwiz # vscodium # see programs.vscode diff --git a/lib/default.nix b/lib/default.nix index bacfbf0..356d1d8 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -26,4 +26,33 @@ ''; dontBuild = true; }; + + IDEAappwrapper = + { + pkgs, + inputpkg, + pkgsuffix, + libraries, + jdk + }: with pkgs; let + name = "${inputpkg.pname}-${pkgsuffix}"; + in stdenv.mkDerivation { + inherit name; + inherit (inputpkg) version; + nativeBuildInputs = [ makeWrapper gnused ]; + buildCommand = '' + mkdir -p $out/bin + mkdir -p $out/share/applications + cp ${inputpkg}/share/applications/${inputpkg.pname}.desktop $out/share/applications/${name}.desktop + makeWrapper ${inputpkg}/bin/${inputpkg.pname} $out/bin/${name} \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath libraries}" \ + --prefix PATH : "${lib.makeBinPath [jdk]}" \ + --set JAVA_HOME "${jdk}/lib/openjdk" + substituteInPlace $out/share/applications/${name}.desktop \ + --replace-fail "=${inputpkg.pname}" "=${name}" + sed -i -E "s/^Name=(.*)/Name=\1 (${pkgsuffix})/g" "$out/share/applications/${name}.desktop" + echo $out/bin/${name} + ''; + dontBuild = true; + }; } \ No newline at end of file