{ pkgs, ... }: # AUTO-UPDATE: nix-update --flake --version=branch=main littlelink-server --subpackage yarnSrc pkgs.stdenv.mkDerivation (finalAttrs: { 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 (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} ''; }; wrapper = pkgs.writeShellApplication { name = finalAttrs.pname; runtimeInputs = with pkgs; [ nodejs_20 ]; text = '' cd ${finalAttrs.yarnSrc}/lib/${finalAttrs.pname} exec node build/server.js "$@" ''; }; installPhase = '' mkdir -p $out/bin cp ${finalAttrs.wrapper}/bin/${finalAttrs.pname} $out/bin/ ''; meta.mainProgram = finalAttrs.pname; })