Files
nix/packages/littlelink-server/default.nix
Nikolaos Karaolidis bb3b6856d6 Add littlelink
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2025-07-16 23:58:03 +01:00

53 lines
1.2 KiB
Nix

{ pkgs, ... }:
# AUTO-UPDATE: nix-update --flake --version=branch=main littlelink-server --subpackage yarnSrc
pkgs.stdenv.mkDerivation rec {
pname = "littlelink-server";
version = "0-unstable-2025-07-16";
src = pkgs.fetchFromGitHub {
owner = "techno-tim";
repo = "littlelink-server";
rev = "fa9fb3a20375c6287ae134af9c2e9e754e0aebb6";
hash = "sha256-BUPqXpiofHlLKgbOYkZr+QEoRIdRgr8alrUzcGS9edc=";
};
yarnSrc = pkgs.stdenv.mkDerivation {
inherit src pname version;
offlineCache = pkgs.fetchYarnDeps {
yarnLock = src + "/yarn.lock";
hash = "sha256-nv1NgMm56wWlAYqqdH9UKTnWNhjxWBs1lmG+UCCQAzk=";
};
nativeBuildInputs = with pkgs; [
nodejs
yarnConfigHook
yarnBuildHook
npmHooks.npmInstallHook
];
yarnBuildFlags = [ "--noninteractive" ];
installPhase = ''
mkdir -p $out/lib/${pname}
cp -r build node_modules $out/lib/${pname}
'';
};
wrapper = pkgs.writeShellApplication {
name = pname;
runtimeInputs = with pkgs; [ nodejs_20 ];
text = ''
cd ${yarnSrc}/lib/${pname}
exec node build/server.js "$@"
'';
};
installPhase = ''
mkdir -p $out/bin
cp ${wrapper}/bin/${pname} $out/bin/
'';
meta.mainProgram = pname;
}