From d9dc832bc54f95adae71b671e6feaed1edd91fd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Fri, 27 Feb 2026 02:17:01 +0100 Subject: [PATCH] python313Packages.bgutil-ytdlp-pot-provider: package server --- .../bgutil-ytdlp-pot-provider/default.nix | 49 ++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/bgutil-ytdlp-pot-provider/default.nix b/pkgs/development/python-modules/bgutil-ytdlp-pot-provider/default.nix index a483b927ef28..9dc0ebb58fe6 100644 --- a/pkgs/development/python-modules/bgutil-ytdlp-pot-provider/default.nix +++ b/pkgs/development/python-modules/bgutil-ytdlp-pot-provider/default.nix @@ -1,8 +1,16 @@ { lib, buildPythonPackage, + cairo, fetchFromGitHub, + fetchNpmDeps, + giflib, hatchling, + nodejs, + npmHooks, + pango, + pixman, + pkg-config, yt-dlp, }: @@ -18,7 +26,27 @@ buildPythonPackage rec { hash = "sha256-dhpataQ1HSCRPnm4k3K/NMaQPQdNrx8C4q855l7kbbQ="; }; - sourceRoot = "${src.name}/plugin"; + npmDeps = fetchNpmDeps { + name = "${pname}-${version}-npm-deps"; + src = src + "/server"; + npmDepsFetcherVersion = 2; + hash = "sha256-Qwwi6W+Oeu6ZeLmZP5vEfAKOJyivbULR5mlk7tcVIE8="; + }; + + npmRoot = "server"; + + nativeBuildInputs = [ + nodejs + npmHooks.npmConfigHook + pkg-config + ]; + + buildInputs = [ + cairo + giflib + pango + pixman + ]; build-system = [ hatchling ]; @@ -26,10 +54,29 @@ buildPythonPackage rec { doCheck = false; # no tests + preBuild = '' + cd server + npx tsc + npm prune --omit=dev + cd ../plugin + ''; + + postInstall = '' + cd .. + + mkdir -p $out/share/bgutil-ytdlp-pot-provider/ + cp -r server/{build,node_modules} $out/share/bgutil-ytdlp-pot-provider/ + makeWrapper ${lib.getExe nodejs} $out/bin/bgutil-ytdlp-pot-provider \ + --add-flags $out/share/bgutil-ytdlp-pot-provider/build/main.js + + cd plugin + ''; + meta = { description = "Proof-of-origin token provider plugin for yt-dlp"; homepage = "https://github.com/Brainicism/bgutil-ytdlp-pot-provider"; license = lib.licenses.gpl3Only; maintainers = with lib.maintainers; [ hexa ]; + mainProgram = "bgutil-ytdlp-pot-provider"; }; }