完成打包 rsshub

This commit is contained in:
陈浩南 2023-08-23 07:43:21 +08:00
parent ebd222abe7
commit 6b2f088cad
2 changed files with 42 additions and 24 deletions

View File

@ -686,11 +686,11 @@
]
},
"locked": {
"lastModified": 1692705959,
"narHash": "sha256-mdgBp7MoW8CBfbCNRI3WpyWOtWUCSrxbYVxN3pJOHPs=",
"lastModified": 1692747783,
"narHash": "sha256-yLObNmu3KF1okPqzIRd9bQ0OZCtQvwXg8Q5ETyLxkts=",
"owner": "CHN-beta",
"repo": "pnpm2nix-nzbr",
"rev": "b03c76371017588dba0ba3059fdf2640066ee385",
"rev": "d8470b9a8295795016e78f0340a91febbc9549aa",
"type": "github"
},
"original": {

View File

@ -1,4 +1,4 @@
{ lib, stdenv, mkPnpmPackage, fetchFromGitHub, nodejs }:
{ lib, stdenv, mkPnpmPackage, fetchFromGitHub, nodejs, writeShellScript, chromium }:
let
pname = "rsshub";
version = "20230823";
@ -10,27 +10,45 @@ let
hash = "sha256-oqcEZs6XLyz/iUZLhzaj/aO1re/V+hy8ij45Y6L1uKA=";
};
originalPnpmPackage = mkPnpmPackage { inherit pname version src nodejs; };
in stdenv.mkDerivation
{
inherit pname version src;
nodeModules = originalPnpmPackage.nodeModules.overrideAttrs { PUPPETEER_SKIP_DOWNLOAD = true; };
configurePhase =
rsshub-unwrapped = stdenv.mkDerivation
{
inherit version src;
pname = "${pname}-unwrapped";
configurePhase =
''
export HOME=$NIX_BUILD_TOP # Some packages need a writable HOME
export npm_config_nodedir=${nodejs}
runHook preConfigure
ln -s ${nodeModules}/. node_modules
runHook postConfigure
'';
installPhase =
''
runHook preInstall
mkdir -p $out
mv * .* $out
runHook postInstall
'';
};
startScript = writeShellScript "rsshub"
''
export HOME=$NIX_BUILD_TOP # Some packages need a writable HOME
export npm_config_nodedir=${nodejs}
runHook preConfigure
${if installInPlace
then passthru.nodeModules.buildPhase
else ''
${if !copyNodeModules
then "ln -s"
else "cp -r"
} ${passthru.nodeModules}/. node_modules
''
}
runHook postConfigure
cd ${rsshub-unwrapped}
export CHROMIUM_EXECUTABLE_PATH=$${chromium}/bin/chromium
${nodejs.pkgs.pnpm}/bin/pnpm start
'';
in stdenv.mkDerivation rec
{
inherit pname version;
phases = [ "installPhase" ];
installPhase =
''
runHook preInstall
mkdir -p $out/bin
cp ${startScript} $out/bin/rsshub
runHook postInstall
'';
}