From 6aa35b55922d0c5033ae0fb723af12cefd4ce216 Mon Sep 17 00:00:00 2001 From: uku Date: Tue, 5 Nov 2024 12:29:10 +0100 Subject: [PATCH] feat(pkgs): add openwebstart --- pkgs/all-packages.nix | 1 + pkgs/openwebstart.nix | 66 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 pkgs/openwebstart.nix diff --git a/pkgs/all-packages.nix b/pkgs/all-packages.nix index b626747..2d68ff2 100644 --- a/pkgs/all-packages.nix +++ b/pkgs/all-packages.nix @@ -3,4 +3,5 @@ final: prev: { vineflower = prev.callPackage ./vineflower.nix {}; koi = prev.kdePackages.callPackage ./koi.nix {}; asus-numpad = prev.callPackage ./asus-numpad.nix {}; + openwebstart = prev.callPackage ./openwebstart.nix {}; } diff --git a/pkgs/openwebstart.nix b/pkgs/openwebstart.nix new file mode 100644 index 0000000..e431290 --- /dev/null +++ b/pkgs/openwebstart.nix @@ -0,0 +1,66 @@ +{ + stdenv, + fetchurl, + makeWrapper, + makeDesktopItem, + copyDesktopItems, + dpkg, + openjdk8, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "OpenWebStart"; + version = "1.5.2"; + + src = fetchurl { + url = with finalAttrs; "https://github.com/karakun/OpenWebStart/releases/download/v${version}/OpenWebStart_linux_${builtins.replaceStrings ["."] ["_"] version}.deb"; + hash = "sha256-thB/JWbF/Xk/PLurwXvWwzQTyCeV1hU7Zm8BjrG6lS0="; + }; + + nativeBuildInputs = [dpkg makeWrapper copyDesktopItems]; + + sourceRoot = "opt/OpenWebStart"; + + unpackPhase = '' + dpkg-deb -x $src . + ''; + + installPhase = '' + mkdir -p $out/lib + cp openwebstart.jar $out/lib/ + + makeWrapper ${openjdk8}/bin/java $out/bin/openwebstart \ + --add-flags "-cp $out/lib/openwebstart.jar com.openwebstart.launcher.OpenWebStartLauncher" + + makeWrapper ${openjdk8}/bin/java $out/bin/openwebstart-settings \ + --add-flags "-cp $out/lib/openwebstart.jar com.openwebstart.launcher.ControlPanelLauncher" + + mkdir -p $out/share/pixmaps + cp App-Icon-512.png $out/share/pixmaps/openwebstart-settings.png + cp Icon-512.png $out/share/pixmaps/openwebstart.png + ''; + + dontBuild = true; + dontCheck = true; + + desktopFiles = [ + (makeDesktopItem { + name = "OpenWebStart Settings"; + type = "Application"; + desktopName = "OpenWebStart Settings"; + exec = "openwebstart-settings %U"; + icon = "openwebstart-settings"; + }) + + (makeDesktopItem { + name = "OpenWebStart"; + type = "Application"; + desktopName = "OpenWebStart"; + noDisplay = true; + exec = "openwebstart %f"; + icon = "openwebstart-settings"; + mimeTypes = ["application/x-java-jnlp-file"]; + }) + ]; + + meta.mainProgram = "openwebstart-settings"; +})