ivpn-ui: init at 3.14.29 (#388384)

authored by Sandro and committed by GitHub 0f9e4976 2f8d949a

+93
+93
pkgs/by-name/iv/ivpn-ui/package.nix
···
··· 1 + { 2 + lib, 3 + buildNpmPackage, 4 + fetchFromGitHub, 5 + electron, 6 + copyDesktopItems, 7 + makeDesktopItem, 8 + nix-update-script, 9 + makeWrapper, 10 + ivpn-service, 11 + }: 12 + let 13 + version = "3.14.29"; 14 + in 15 + buildNpmPackage { 16 + pname = "ivpn-ui"; 17 + inherit version; 18 + 19 + src = fetchFromGitHub { 20 + owner = "ivpn"; 21 + repo = "desktop-app"; 22 + tag = "v${version}"; 23 + hash = "sha256-8JScty/sGyxzC2ojRpatHpCqEXZw9ksMortIhZnukoU="; 24 + }; 25 + 26 + sourceRoot = "source/ui"; 27 + 28 + npmDepsHash = "sha256-2EsXYNo+rj2v+YkZT6ciEcDAirnEZ5MezFlf9zsb/os="; 29 + 30 + nativeBuildInputs = [ 31 + copyDesktopItems 32 + makeWrapper 33 + ]; 34 + 35 + env = { 36 + ELECTRON_SKIP_BINARY_DOWNLOAD = 1; 37 + }; 38 + 39 + postBuild = '' 40 + cp -r ${electron.dist} electron-dist 41 + chmod -R u+w electron-dist 42 + 43 + npm exec electron-builder -- \ 44 + --dir \ 45 + -c.electronDist=electron-dist \ 46 + -c.electronVersion=${electron.version} \ 47 + --config electron-builder.config.js 48 + ''; 49 + 50 + installPhase = '' 51 + runHook preInstall 52 + 53 + mkdir -p $out/share/ivpn-ui 54 + cp -r dist/*-unpacked/{locales,resources{,.pak}} $out/share/ivpn-ui 55 + 56 + install -Dm644 $src/ui/References/Linux/ui/ivpnicon.svg $out/share/icons/hicolor/scalable/apps/ivpn-ui.svg 57 + 58 + makeWrapper ${lib.getExe electron} $out/bin/ivpn-ui \ 59 + --prefix PATH : ${lib.makeBinPath [ ivpn-service ]} \ 60 + --add-flags $out/share/ivpn-ui/resources/app.asar \ 61 + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \ 62 + --inherit-argv0 63 + 64 + runHook postInstall 65 + ''; 66 + 67 + desktopItems = [ 68 + (makeDesktopItem { 69 + name = "ivpn-ui"; 70 + type = "Application"; 71 + desktopName = "IVPN"; 72 + genericName = "VPN Client"; 73 + comment = "UI interface for IVPN"; 74 + icon = "ivpn-ui"; 75 + exec = "ivpn-ui"; 76 + categories = [ "Network" ]; 77 + startupNotify = true; 78 + }) 79 + ]; 80 + 81 + passthru.updateScript = nix-update-script { }; 82 + 83 + meta = { 84 + description = "UI interface for IVPN"; 85 + mainProgram = "ivpn-ui"; 86 + homepage = "https://www.ivpn.net"; 87 + downloadPage = "https://github.com/ivpn/desktop-app"; 88 + changelog = "https://github.com/ivpn/desktop-app/releases/tag/v${version}"; 89 + license = lib.licenses.gpl3Only; 90 + maintainers = with lib.maintainers; [ blenderfreaky ]; 91 + platforms = [ "x86_64-linux" ]; 92 + }; 93 + }