package soularr

This commit is contained in:
veneficium 2025-12-21 14:50:37 +01:00
parent e6c1be95ee
commit e113bfa1c7
4 changed files with 95 additions and 1 deletions

View file

@ -58,7 +58,7 @@
helix,
...
}:
{
rec {
nixosConfigurations = {
fedfer-main-laptop-nixos = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
@ -88,11 +88,21 @@
modules = [
arion.nixosModules.arion
{
nixpkgs.overlays = [ ((import ./overlays/soularr.nix) packages.x86_64-linux.soularr) ];
}
./hosts/main-homelab/configuration.nix
];
};
};
packages.x86_64-linux = rec {
slskd-api = (nixpkgs.legacyPackages.x86_64-linux.callPackage ./packages/slskd-api.nix { });
soularr = (
nixpkgs.legacyPackages.x86_64-linux.callPackage ./packages/soularr.nix { inherit slskd-api; }
);
};
formatter.x86_64-linux =
(treefmt-nix.lib.evalModule nixpkgs.legacyPackages."x86_64-linux" ./treefmt.nix)
.config.build.wrapper;

4
overlays/soularr.nix Normal file
View file

@ -0,0 +1,4 @@
{ soularr, ... }:
(final: prev: {
soularr = soularr;
})

32
packages/slskd-api.nix Normal file
View file

@ -0,0 +1,32 @@
{
lib,
python3Packages,
fetchFromGitHub,
}:
python3Packages.buildPythonPackage rec {
pname = "slskd-api";
version = "0.1.5";
pyproject = true;
src = fetchFromGitHub {
owner = "bigoulours";
repo = "slskd-python-api";
tag = "v${version}";
hash = "sha256-Kyzbd8y92VFzjIp9xVbhkK9rHA/6KCCJh7kNS/MtixI=";
};
nativeBuildInputs = with python3Packages; [ setuptools-git-versioning ];
dependencies = with python3Packages; [ requests ];
pythonImportsCheck = [ "slskd_api" ];
meta = {
description = "API Wrapper to interact with slskd";
homepage = "https://slskd-api.readthedocs.io/";
changelog = "https://github.com/bigoulours/slskd-python-api/releases/tag/${src.tag}";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [ getchoo ];
};
}

48
packages/soularr.nix Normal file
View file

@ -0,0 +1,48 @@
{
lib,
fetchFromGitHub,
installShellFiles,
python3Packages,
slskd-api,
}:
python3Packages.buildPythonApplication {
pname = "soularr";
version = "0-unstable-2025-02-05";
pyproject = false;
src = fetchFromGitHub {
owner = "mrusse";
repo = "soularr";
rev = "dc23f6d11fb2148c35168028b6b2fdfd0c502957";
hash = "sha256-znEubXeQmEmE8swmgDSliTh/v/k3t55jzchWCAd9bGc=";
};
nativeBuildInputs = [ installShellFiles ];
dependencies = with python3Packages; [
music-tag
pyarr
slskd-api
];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mv soularr{.py,}
installBin soularr
runHook postInstall
'';
meta = {
description = "Python script that connects Lidarr with Soulseek";
homepage = "https://soularr.net/";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ getchoo ];
mainProgram = "soularr";
};
}