diff options
author | Pol Dellaiera <pol.dellaiera@protonmail.com> | 2024-04-02 21:15:08 +0200 |
---|---|---|
committer | Pol Dellaiera <pol.dellaiera@protonmail.com> | 2024-04-02 21:15:08 +0200 |
commit | 8484ed14b748cc79b8b2c5e9a67c4af5dcabc13b (patch) | |
tree | a7fa9c34d87d96c0d02e2ff32211ae0be56366e6 /pkgs/by-name/je | |
parent | ac9983e7765f6b5e452429912d156ff1fa7bd4db (diff) |
jetbrains-toolbox: move to `pkgs/by-name`
Diffstat (limited to 'pkgs/by-name/je')
-rw-r--r-- | pkgs/by-name/je/jetbrains-toolbox/package.nix | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/pkgs/by-name/je/jetbrains-toolbox/package.nix b/pkgs/by-name/je/jetbrains-toolbox/package.nix new file mode 100644 index 0000000000000..6019ffed2b89b --- /dev/null +++ b/pkgs/by-name/je/jetbrains-toolbox/package.nix @@ -0,0 +1,70 @@ +{ stdenv +, lib +, fetchzip +, copyDesktopItems +, makeWrapper +, runCommand +, appimageTools +, icu +}: +let + pname = "jetbrains-toolbox"; + version = "2.2.3.20090"; + + src = fetchzip { + url = "https://download.jetbrains.com/toolbox/jetbrains-toolbox-${version}.tar.gz"; + sha256 = "sha256-SqxQF5pG61CySsDzdZ1P2C9cCe/B145D0S+T4NByif8="; + stripRoot = false; + }; + + appimageContents = runCommand "${pname}-extracted" + { + nativeBuildInputs = [ appimageTools.appimage-exec ]; + } + '' + appimage-exec.sh -x $out ${src}/${pname}-${version}/${pname} + + # JetBrains ship a broken desktop file. Despite registering a custom + # scheme handler for jetbrains:// URLs, they never mark the command as + # being suitable for passing URLs to. Ergo, the handler never receives + # its payload. This causes various things to break, including login. + # Reported upstream at: https://youtrack.jetbrains.com/issue/TBX-11478/ + sed -Ei '/^Exec=/s/( %U)?$/ %U/' $out/jetbrains-toolbox.desktop + ''; + + appimage = appimageTools.wrapAppImage { + inherit pname version; + src = appimageContents; + extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.targetPkgs pkgs); + }; +in +stdenv.mkDerivation { + inherit pname version src appimage; + + nativeBuildInputs = [ makeWrapper copyDesktopItems ]; + + installPhase = '' + runHook preInstall + + install -Dm644 ${appimageContents}/.DirIcon $out/share/icons/hicolor/scalable/apps/jetbrains-toolbox.svg + makeWrapper ${appimage}/bin/${pname}-${version} $out/bin/${pname} \ + --append-flags "--update-failed" \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [icu]} + + runHook postInstall + ''; + + desktopItems = [ "${appimageContents}/jetbrains-toolbox.desktop" ]; + + # Disabling the tests, this seems to be very difficult to test this app. + doCheck = false; + + meta = with lib; { + description = "Jetbrains Toolbox"; + homepage = "https://jetbrains.com/"; + license = licenses.unfree; + maintainers = with maintainers; [ AnatolyPopov ]; + platforms = [ "x86_64-linux" ]; + mainProgram = "jetbrains-toolbox"; + }; +} |