Use makeWrapper
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
{ pkgs, ... }:
|
||||
# AUTO-UPDATE: nix-update --flake --version=branch=master littlelink-server --subpackage yarnSrc
|
||||
# AUTO-UPDATE: nix-update --flake --version=branch=master littlelink-server
|
||||
pkgs.stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "littlelink-server";
|
||||
version = "0-unstable-2025-06-16";
|
||||
@@ -11,41 +11,28 @@ pkgs.stdenv.mkDerivation (finalAttrs: {
|
||||
hash = "sha256-BUPqXpiofHlLKgbOYkZr+QEoRIdRgr8alrUzcGS9edc=";
|
||||
};
|
||||
|
||||
yarnSrc = pkgs.stdenv.mkDerivation {
|
||||
inherit (finalAttrs) src pname version;
|
||||
|
||||
offlineCache = pkgs.fetchYarnDeps {
|
||||
yarnLock = finalAttrs.src + "/yarn.lock";
|
||||
hash = "sha256-nv1NgMm56wWlAYqqdH9UKTnWNhjxWBs1lmG+UCCQAzk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
nodejs
|
||||
yarnConfigHook
|
||||
yarnBuildHook
|
||||
npmHooks.npmInstallHook
|
||||
];
|
||||
|
||||
yarnBuildFlags = [ "--noninteractive" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib/${finalAttrs.pname}
|
||||
cp -r build node_modules $out/lib/${finalAttrs.pname}
|
||||
'';
|
||||
offlineCache = pkgs.fetchYarnDeps {
|
||||
yarnLock = finalAttrs.src + "/yarn.lock";
|
||||
hash = "sha256-nv1NgMm56wWlAYqqdH9UKTnWNhjxWBs1lmG+UCCQAzk=";
|
||||
};
|
||||
|
||||
wrapper = pkgs.writeShellApplication {
|
||||
name = finalAttrs.pname;
|
||||
runtimeInputs = with pkgs; [ nodejs_20 ];
|
||||
text = ''
|
||||
cd ${finalAttrs.yarnSrc}/lib/${finalAttrs.pname}
|
||||
exec node build/server.js "$@"
|
||||
'';
|
||||
};
|
||||
nativeBuildInputs = with pkgs; [
|
||||
nodejs_20
|
||||
yarnConfigHook
|
||||
yarnBuildHook
|
||||
npmHooks.npmInstallHook
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
yarnBuildFlags = [ "--noninteractive" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp ${finalAttrs.wrapper}/bin/${finalAttrs.pname} $out/bin/
|
||||
mkdir -p $out/lib/${finalAttrs.pname}
|
||||
cp -r build node_modules $out/lib/${finalAttrs.pname}
|
||||
|
||||
makeWrapper ${pkgs.nodejs_20}/bin/node $out/bin/${finalAttrs.pname} \
|
||||
--run "cd $out/lib/${finalAttrs.pname}" \
|
||||
--add-flag "build/server.js"
|
||||
'';
|
||||
|
||||
meta.mainProgram = finalAttrs.pname;
|
||||
|
Reference in New Issue
Block a user