update/navibeat
1{
2 lib,
3 stdenv,
4 appimageTools,
5 fetchurl,
6}: let
7 pname = "navibeat";
8 version = "1.0.40";
9
10 src =
11 if stdenv.hostPlatform.isAarch64
12 then
13 fetchurl {
14 url = "https://github.com/nenadjokic/navibeat-linux/releases/download/v${version}/NaviBeat-linux-aarch64-slim.AppImage";
15 hash = "sha256-4po/F7CCXNntPXMb3o5gLo0hHNPfoM9HXDMguBijxjk=";
16 }
17 else
18 fetchurl {
19 url = "https://github.com/nenadjokic/navibeat-linux/releases/download/v${version}/NaviBeat-linux-x86_64-slim.AppImage";
20 hash = "sha256-BiTFWxK/RfdkJeqZiHjzdH6/FLcDVxnvh05w/2PAto8=";
21 };
22
23 appimageContents = appimageTools.extract {inherit pname version src;};
24in
25 appimageTools.wrapType2 {
26 inherit pname version src;
27
28 passthru.updateScript = [(toString ./update.sh)];
29 preferLocalBuild = true;
30
31 extraPkgs = pkgs: [
32 pkgs.vlc
33 ];
34
35 extraInstallCommands = ''
36 install -m 444 -D ${appimageContents}/NaviBeat.desktop $out/share/applications/NaviBeat.desktop
37 install -m 444 -D ${appimageContents}/NaviBeat.png $out/share/icons/hicolor/1024x1024/apps/NaviBeat.png
38 substituteInPlace $out/share/applications/NaviBeat.desktop \
39 --replace-fail 'Exec=NaviBeat' 'Exec=${pname}'
40 '';
41
42 meta = {
43 description = "Navidrome and Subsonic music client for Linux";
44 homepage = "https://navibeat.app/linux";
45 license = lib.licenses.unfree;
46 platforms = [
47 "x86_64-linux"
48 "aarch64-linux"
49 ];
50 };
51 }