From 15552e032fe756180e2c0d9186137bca85fe58d4 Mon Sep 17 00:00:00 2001 From: "Adam C. Stephens" Date: Fri, 1 May 2026 14:05:41 -0400 Subject: [PATCH] shelfmark: inline frontend and add updateScript --- .../by-name/sh/shelfmark-frontend/package.nix | 25 ---------- pkgs/by-name/sh/shelfmark/package.nix | 46 +++++++++++++++---- 2 files changed, 37 insertions(+), 34 deletions(-) delete mode 100644 pkgs/by-name/sh/shelfmark-frontend/package.nix diff --git a/pkgs/by-name/sh/shelfmark-frontend/package.nix b/pkgs/by-name/sh/shelfmark-frontend/package.nix deleted file mode 100644 index c39f7920f828..000000000000 --- a/pkgs/by-name/sh/shelfmark-frontend/package.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - buildNpmPackage, - shelfmark, -}: - -buildNpmPackage (finalAttrs: { - pname = "shelfmark-frontend"; - inherit (shelfmark) version src; - - sourceRoot = "${finalAttrs.src.name}/src/frontend"; - - npmDepsHash = "sha256-c/KDGUe+X4dfzbDXpkzYsEzvBxJjq46PTzqbgoCdGgw="; - - installPhase = '' - runHook preInstall - cp -r dist $out - runHook postInstall - ''; - - meta = { - description = "Shelfmark frontend"; - homepage = "https://github.com/calibrain/shelfmark/tree/main/src/frontend"; - inherit (shelfmark.meta) changelog license maintainers; - }; -}) diff --git a/pkgs/by-name/sh/shelfmark/package.nix b/pkgs/by-name/sh/shelfmark/package.nix index 2267d26bda21..891242c77951 100644 --- a/pkgs/by-name/sh/shelfmark/package.nix +++ b/pkgs/by-name/sh/shelfmark/package.nix @@ -1,12 +1,14 @@ { lib, stdenv, + buildNpmPackage, fetchFromGitHub, python314Packages, + nix-update-script, makeWrapper, nixosTests, - shelfmark-frontend, unrar-free, + _experimental-update-script-combinators, }: let @@ -34,18 +36,35 @@ let authlib apprise ]; -in -stdenv.mkDerivation (finalAttrs: { - pname = "shelfmark"; + version = "1.2.2"; src = fetchFromGitHub { owner = "calibrain"; repo = "shelfmark"; - tag = "v${finalAttrs.version}"; + tag = "v${version}"; hash = "sha256-4x5HwVNNGmoJ/ey1+hc7IqgYjaEJjOWpFuqGlTc4MsM="; }; + frontend = buildNpmPackage (finalAttrs: { + pname = "shelfmark-frontend"; + inherit version src; + + sourceRoot = "${finalAttrs.src.name}/src/frontend"; + + npmDepsHash = "sha256-c/KDGUe+X4dfzbDXpkzYsEzvBxJjq46PTzqbgoCdGgw="; + + installPhase = '' + runHook preInstall + cp -r dist $out + runHook postInstall + ''; + }); +in +stdenv.mkDerivation (finalAttrs: { + pname = "shelfmark"; + inherit version src; + nativeBuildInputs = [ python3Packages.wrapPython makeWrapper @@ -62,7 +81,7 @@ stdenv.mkDerivation (finalAttrs: { cp -r shelfmark $out/libexec/shelfmark cp -r data $out/libexec/data - ln -s ${finalAttrs.passthru.frontend} $out/libexec/frontend-dist + ln -s ${frontend} $out/libexec/frontend-dist makeWrapper ${python3Packages.python.interpreter} $out/bin/shelfmark \ --prefix PATH : ${ @@ -79,12 +98,21 @@ stdenv.mkDerivation (finalAttrs: { ''; passthru = { - frontend = shelfmark-frontend.override { - shelfmark = finalAttrs.finalPackage; - }; + inherit frontend; + tests = { inherit (nixosTests) shelfmark; }; + + updateScript = _experimental-update-script-combinators.sequence [ + (nix-update-script { }) + (nix-update-script { + extraArgs = [ + "--subpackage=frontend" + "--version=skip" + ]; + }) + ]; }; meta = {