diff --git a/pkgs/by-name/sp/spotatui/package.nix b/pkgs/by-name/sp/spotatui/package.nix new file mode 100644 index 000000000000..fcfb1f38127e --- /dev/null +++ b/pkgs/by-name/sp/spotatui/package.nix @@ -0,0 +1,56 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + nix-update-script, + pkg-config, + alsa-lib, + openssl, + pipewire, + + withPipewireVisualizer ? true, +}: +rustPlatform.buildRustPackage (finalAttrs: { + pname = "spotatui"; + version = "0.36.2"; + + src = fetchFromGitHub { + owner = "LargeModGames"; + repo = "spotatui"; + tag = "v${finalAttrs.version}"; + hash = "sha256-E8VIMQUGKWAauN/GTGMOdvHsghhO4E0wVdE9lIk6zEc="; + }; + + cargoHash = "sha256-nHOLOlAZfp2k0nMAywTJT+TiTkUeybRVu+PkADBY22w="; + + nativeBuildInputs = [ pkg-config ] ++ lib.optional withPipewireVisualizer rustPlatform.bindgenHook; + + buildInputs = [ + alsa-lib + openssl + ] + ++ lib.optional withPipewireVisualizer pipewire; + + buildNoDefaultFeatures = true; + buildFeatures = [ + "discord-rpc" + "mpris" + "streaming" + "telemetry" + ] + ++ lib.optional withPipewireVisualizer "audio-viz"; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Fully standalone Spotify client for the terminal"; + homepage = "https://github.com/LargeModGames/spotatui"; + changelog = "https://github.com/LargeModGames/spotatui/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.lordmzte ]; + mainProgram = "spotatui"; + + # macOS is supported by upstream, but the package maintainer has no way to test this. + platforms = lib.platforms.linux; + }; +})