passky-desktop: 7.1.0 -> 8.1.1

+57 -46
+57 -46
pkgs/applications/misc/passky-desktop/default.nix
··· 1 - { lib, stdenv, fetchurl, appimageTools, undmg }: 1 + { lib 2 + , stdenv 3 + , fetchFromGitHub 4 + , electron_22 5 + , makeWrapper 6 + , makeDesktopItem 7 + , copyDesktopItems 8 + }: 2 9 3 - let 10 + stdenv.mkDerivation rec { 4 11 pname = "passky-desktop"; 5 - version = "7.1.0"; 12 + version = "8.1.1"; 6 13 7 - srcs = { 8 - x86_64-linux = fetchurl { 9 - url = "https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v${version}/Passky-${version}.AppImage"; 10 - sha256 = "1xnhrmmm018mmyzjq05mhbf673f0n81fh1k3kbfarbgk2kbwpq6y"; 11 - }; 12 - x86_64-darwin = fetchurl { 13 - url = "https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v${version}/Passky-${version}.dmg"; 14 - sha256 = "0mm7hk4v7zvpjdqyw3nhk33x72j0gh3f59bx3q18azlm4dr61r2d"; 15 - }; 14 + src = fetchFromGitHub { 15 + owner = "Rabbit-Company"; 16 + repo = "Passky-Desktop"; 17 + rev = "refs/tags/v${version}"; 18 + sha256 = "1ma8s1bngjdzclcc4m5pcmavk38sidaskmz7dgfnv84y35si18dr"; 16 19 }; 17 - src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); 18 20 19 - appimageContents = appimageTools.extract { inherit pname version src; }; 20 - meta = with lib; { 21 - homepage = "https://passky.org"; 22 - downloadPage = "https://github.com/Rabbit-Company/Passky-Desktop/releases"; 23 - license = licenses.gpl3Only; 24 - maintainers = with maintainers; [ akkesm ]; 25 - platforms = builtins.attrNames srcs; 26 - }; 21 + nativeBuildInputs = [ makeWrapper copyDesktopItems ]; 27 22 28 - linux = appimageTools.wrapType2 { 29 - inherit pname version src meta; 23 + installPhase = '' 24 + runHook preInstall 30 25 31 - extraInstallCommands = '' 32 - mv $out/bin/${pname}-${version} $out/bin/${pname} 26 + mkdir -p $out/share/passky 27 + cp -r "." "$out/share/passky/electron" 33 28 34 - install -D ${appimageContents}/passky.desktop \ 35 - $out/share/applications/${pname}.desktop 29 + local resolution 30 + for icon in $out/share/passky/electron/images/icons/icon*.png; do 31 + resolution=''${icon%".png"} 32 + resolution=''${resolution##*/icon-} 33 + mkdir -p "$out/share/icons/hicolor/''${resolution}/apps" 34 + ln -s "$icon" "$out/share/icons/hicolor/''${resolution}/apps/passky.png" 35 + done 36 36 37 - substituteInPlace $out/share/applications/${pname}.desktop \ 38 - --replace 'Exec=AppRun' 'Exec=${pname}' 37 + mkdir "$out/share/applications" 38 + makeWrapper ${electron_22}/bin/electron "$out/bin/passky" \ 39 + --add-flags "$out/share/passky/electron/" \ 40 + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" 39 41 40 - cp -r ${appimageContents}/usr/share/icons $out/share 41 - ''; 42 - }; 42 + runHook postInstall 43 + ''; 43 44 44 - darwin = stdenv.mkDerivation { 45 - inherit pname version src meta; 45 + desktopItems = [ 46 + ( 47 + makeDesktopItem { 48 + name = "Passky"; 49 + type = "Application"; 50 + desktopName = "passky"; 51 + comment = "Simple, modern, open source and secure password manager."; 52 + icon = "passky"; 53 + exec = "passky %U"; 54 + categories = [ "Utility" ]; 55 + startupWMClass = "Passky"; 56 + } 57 + ) 58 + ]; 46 59 47 - nativeBuildInputs = [ undmg ]; 48 - 49 - sourceRoot = "."; 50 - 51 - installPhase = '' 52 - mkdir -p $out/Applications 53 - cp -r *.app $out/Applications 54 - ''; 60 + meta = with lib; { 61 + description = "A simple, modern, lightweight, open source and secure password manager"; 62 + homepage = "https://passky.org"; 63 + downloadPage = "https://github.com/Rabbit-Company/Passky-Desktop/releases"; 64 + changelog = "https://github.com/Rabbit-Company/Passky-Desktop/releases/tag/v${version}"; 65 + license = licenses.gpl3Only; 66 + maintainers = with maintainers; [ akkesm ]; 67 + mainProgram = "passky"; 68 + platforms = platforms.unix; 55 69 }; 56 - in 57 - if stdenv.isDarwin 58 - then darwin 59 - else linux 70 + }