From d30f406254bca447c4b9273c7d69bcc4ed5c6f10 Mon Sep 17 00:00:00 2001 From: Moraxyc Date: Fri, 19 Dec 2025 19:28:20 +0800 Subject: [PATCH] sub-store: init at 2.20.61 --- pkgs/by-name/su/sub-store/package.nix | 72 +++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 pkgs/by-name/su/sub-store/package.nix diff --git a/pkgs/by-name/su/sub-store/package.nix b/pkgs/by-name/su/sub-store/package.nix new file mode 100644 index 000000000000..cd1c85e268f4 --- /dev/null +++ b/pkgs/by-name/su/sub-store/package.nix @@ -0,0 +1,72 @@ +{ + lib, + buildNpmPackage, + fetchFromGitHub, + + pnpm_10, + pnpm ? pnpm_10, + fetchPnpmDeps, + pnpmConfigHook, + makeBinaryWrapper, + nix-update-script, + + nodejs, +}: + +buildNpmPackage (finalAttrs: { + pname = "sub-store"; + version = "2.20.61"; + + src = fetchFromGitHub { + owner = "sub-store-org"; + repo = "Sub-Store"; + tag = finalAttrs.version; + hash = "sha256-6NHPVCIlModWXzKOJnPwA41cHrNWy6yXUEwoKpbwpmw="; + }; + + sourceRoot = "${finalAttrs.src.name}/backend"; + + nativeBuildInputs = [ + makeBinaryWrapper + pnpm + ]; + + npmDeps = null; + pnpmDeps = fetchPnpmDeps { + inherit (finalAttrs) + pname + version + src + sourceRoot + ; + inherit pnpm; + fetcherVersion = 3; + hash = "sha256-VsK6qvBeOF2smXRFmMk4gWxQgAD1GG/ExvZdIERdz9g="; + }; + + npmConfigHook = pnpmConfigHook; + npmBuildScript = "bundle:esbuild"; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share + cp -r dist $out/share/sub-store + makeWrapper ${lib.getExe nodejs} $out/bin/sub-store \ + --add-flags "$out/share/sub-store/sub-store.bundle.js" + + runHook postInstall + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Advanced Subscription Manager for QX, Loon, Surge, Stash, Egern and Shadowrocket"; + homepage = "https://github.com/sub-store-org/Sub-Store"; + changelog = "https://github.com/sub-store-org/Sub-Store/releases/tag/${finalAttrs.version}"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ moraxyc ]; + mainProgram = "sub-store"; + platforms = nodejs.meta.platforms; + }; +})