diff options
author | Jonas Heinrich <onny@project-insanity.org> | 2023-03-01 16:18:11 +0100 |
---|---|---|
committer | Jonas Heinrich <onny@project-insanity.org> | 2023-07-29 14:43:03 +0200 |
commit | 00bb7e7c4d4b51a9f3b47993472c42cfbcfeb516 (patch) | |
tree | 1f31186c31bdd613efd8fa5aaa4afecc46685aaf /pkgs/applications/audio/feishin | |
parent | c35a9050efba06254b1e4df014d8d7beeaaf887e (diff) |
feishin: init at 0.2.0
Diffstat (limited to 'pkgs/applications/audio/feishin')
-rw-r--r-- | pkgs/applications/audio/feishin/darwin.nix | 39 | ||||
-rw-r--r-- | pkgs/applications/audio/feishin/default.nix | 26 | ||||
-rw-r--r-- | pkgs/applications/audio/feishin/linux.nix | 71 |
3 files changed, 136 insertions, 0 deletions
diff --git a/pkgs/applications/audio/feishin/darwin.nix b/pkgs/applications/audio/feishin/darwin.nix new file mode 100644 index 0000000000000..cd486ea430c6b --- /dev/null +++ b/pkgs/applications/audio/feishin/darwin.nix @@ -0,0 +1,39 @@ +{ stdenv +, lib +, fetchurl +, mpv +, electron_24 +, makeDesktopItem +, makeWrapper +, pname +, appname +, version +}: + +stdenv.mkDerivation { + inherit pname version; + + src = fetchurl { + url = "https://github.com/jeffvli/feishin/releases/download/v${version}/${appname}-${version}-mac-x64.zip" + hash = "sha256-WzU/Yd3cNMIpmkKWC29mQlviYXiYV5k8+80iyzilPGc="; + }; + + nativeBuildInputs = [ makeWrapper unzip ]; + + # Installs mpv as a requirement + propagatedBuildInputs = [ mpv ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/{Applications/${appname}.app,bin} + cp -R . $out/Applications/${appname}.app + makeWrapper $out/Applications/${appname}.app/Contents/MacOS/${appname} $out/bin/${pname} + runHook postInstall + ''; + + shellHook = '' + set -x + export LD_LIBRARY_PATH=${mpv}/lib + set +x + ''; +} diff --git a/pkgs/applications/audio/feishin/default.nix b/pkgs/applications/audio/feishin/default.nix new file mode 100644 index 0000000000000..f9a670dbfa3e7 --- /dev/null +++ b/pkgs/applications/audio/feishin/default.nix @@ -0,0 +1,26 @@ +{ lib +, stdenv +, callPackage +, ... +}@args: + +let + extraArgs = removeAttrs args [ "callPackage" ]; + + pname = "feishin"; + version = "0.2.0"; + appname = "Feishin"; + + meta = with lib; { + description = "Full-featured Subsonic/Jellyfin compatible desktop music player"; + homepage = "https://github.com/jeffvli/feishin"; + changelog = "https://github.com/jeffvli/feishin/releases/tag/v${version}"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + license = licenses.mit; + platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; + maintainers = with maintainers; [ onny ]; + }; + +in if stdenv.isDarwin +then callPackage ./darwin.nix (extraArgs // { inherit pname appname version meta; }) +else callPackage ./linux.nix (extraArgs // { inherit pname appname version meta; }) diff --git a/pkgs/applications/audio/feishin/linux.nix b/pkgs/applications/audio/feishin/linux.nix new file mode 100644 index 0000000000000..08adc69bb7ee9 --- /dev/null +++ b/pkgs/applications/audio/feishin/linux.nix @@ -0,0 +1,71 @@ +{ stdenv +, meta +, lib +, fetchurl +, mpv +, graphicsmagick +, electron_24 +, makeDesktopItem +, makeWrapper +, pname +, appname +, version +}: + +let + icon = fetchurl { + url = + "https://github.com/jeffvli/feishin/raw/development/assets/icons/1024x1024.png"; + sha256 = "sha256-8Qigt1CNMa3SDVK2cdqWJuMSl19yfy6nPQfME4qA48I="; + }; + + desktopItem = makeDesktopItem { + name = "feishin"; + desktopName = "Feishin"; + comment = "Full-featured Subsonic/Jellyfin compatible desktop music player"; + icon = "feishin"; + exec = "feishin %u"; + categories = [ "Audio" ]; + mimeTypes = [ "x-scheme-handler/feishin" ]; + }; +in + +stdenv.mkDerivation { + inherit pname version; + + src = fetchurl { + url = "https://github.com/jeffvli/feishin/releases/download/v${version}/${appname}-${version}-linux-x64.tar.xz"; + hash = "sha256-o+fEjdG2iN84FEchyAKWZCpsrqDm1K1k+Q2K+cwYBZE="; + }; + + + nativeBuildInputs = [ makeWrapper graphicsmagick ]; + + # Installs mpv as a requirement + propagatedBuildInputs = [ mpv ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + mkdir -p $out/share + cp -r resources $out/share/${pname}/ + cp -r locales $out/share/${pname}/ + + makeWrapper ${electron_24}/bin/electron $out/bin/${pname} \ + --add-flags $out/share/${pname}/app.asar + install -m 444 -D "${desktopItem}/share/applications/"* \ + -t $out/share/applications/ + for size in 16 24 32 48 64 128 256 512; do + mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps + gm convert -resize "$size"x"$size" ${icon} $out/share/icons/hicolor/"$size"x"$size"/apps/${appname}.png + done + runHook postInstall + ''; + + shellHook = '' + set -x + export LD_LIBRARY_PATH=${mpv}/lib + set +x + ''; +} |