From 6c0584bf8f5d07b25b19a71f3d8afb4fd57d8fcd Mon Sep 17 00:00:00 2001 From: karitham Date: Tue, 2 Jun 2026 17:37:07 +0200 Subject: [PATCH] pkgs: multi-scrobbler 0.14.0 --- modules/pkgs/multi-scrobbler.nix | 64 ++++++++++++++------------------ 1 file changed, 27 insertions(+), 37 deletions(-) diff --git a/modules/pkgs/multi-scrobbler.nix b/modules/pkgs/multi-scrobbler.nix index 25ba360..58c8072 100644 --- a/modules/pkgs/multi-scrobbler.nix +++ b/modules/pkgs/multi-scrobbler.nix @@ -2,69 +2,59 @@ lib, buildNpmPackage, fetchFromGitHub, - nodejs, makeWrapper, - bashNonInteractive, - ... + nodejs_24, }: + buildNpmPackage rec { pname = "multi-scrobbler"; - version = "0.10.8"; + version = "0.14.0"; src = fetchFromGitHub { owner = "FoxxMD"; repo = "multi-scrobbler"; rev = version; - hash = "sha256-knHOAE5reDN7fVmA2guQFG49jiQobzLpFlm6N1TioSI="; + hash = "sha256-LkJCh2qPHVjNDf2UCC1ZbBq1Db4/FC2rL0MDeKg1OTc="; }; - npmDepsHash = "sha256-4do1Hm6c82v0I2N7eO700k4rOBjLOx373QKKuhi5/uU="; - - nativeBuildInputs = [ - makeWrapper - bashNonInteractive - ]; - - inherit nodejs; - - buildPhase = '' - runHook preBuild + npmDepsHash = "sha256-1IUvjfYeM1GaK1OeSLoq8YSDjuS3rR+cgtwxgbbU5ps="; + npmBuildScript = "build:backend"; + nativeBuildInputs = [ makeWrapper ]; + env.npm_config_nodedir = nodejs_24; - npm run build:backend + postBuild = '' npm run build:frontend - - runHook postBuild ''; installPhase = '' runHook preInstall - npm prune --production + mkdir -p $out/bin $out/share/${pname} - mkdir -p $out/bin $out/share/multi-scrobbler - cp -r * $out/share/multi-scrobbler/ + cp package.json package-lock.json $out/share/${pname}/ + cp -r dist src $out/share/${pname}/ + cp -r node_modules $out/share/${pname}/ - runHook postInstall - ''; + rm -rf $out/share/${pname}/.git + rm -rf $out/share/${pname}/docsite/node_modules + rm -rf $out/share/${pname}/node_modules/ts-json-schema-generator + rm -f $out/share/${pname}/node_modules/.bin/ts-json-schema-generator - postInstall = '' - # Copy tsconfig for ts-json-schema-generator to find at runtime - # The app expects tsconfig.json to be in the working directory under src/backend/ - # We'll preserve the source directory structure - mkdir -p $out/share/multi-scrobbler/src/backend - cp src/backend/tsconfig.json $out/share/multi-scrobbler/src/backend/ + makeWrapper ${lib.getExe nodejs_24} $out/bin/${pname} \ + --chdir $out/share/${pname} \ + --set NODE_ENV production \ + --set COLORED_STD true \ + --set APP_VERSION ${version} \ + --add-flags ./node_modules/.bin/tsx \ + --add-flags ./src/backend/index.ts - # Create wrapper with working directory set to the source install location - makeWrapper ${nodejs}/bin/node $out/bin/multi-scrobbler \ - --add-flags "$out/share/multi-scrobbler/node_modules/tsx/dist/cli.mjs" \ - --add-flags "$out/share/multi-scrobbler/src/backend/index.ts" \ - --chdir "$out/share/multi-scrobbler" + runHook postInstall ''; - meta = with lib; { + meta = { description = "Scrobble plays from multiple sources to multiple clients"; homepage = "https://github.com/FoxxMD/multi-scrobbler"; - license = licenses.mit; + license = lib.licenses.mit; mainProgram = "multi-scrobbler"; }; } -- 2.54.0