shelfmark: inline frontend and add updateScript

This commit is contained in:
Adam C. Stephens
2026-05-01 14:21:10 -04:00
parent 088daa4b92
commit 15552e032f
2 changed files with 37 additions and 34 deletions
@@ -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;
};
})
+37 -9
View File
@@ -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 = {