Flake to setup a local env for atproto development
at main 1.5 kB view raw
1{ 2 stdenv, 3 makeBinaryWrapper, 4 pnpm_9, 5 fetchgit, 6 nodejs, 7 lib, 8}: 9 10stdenv.mkDerivation (finalAttrs: { 11 pname = "did-method-plc"; 12 version = "0.1.0"; 13 14 src = fetchgit { 15 url = "https://tangled.org/@edouard.paris/did-method-plc"; 16 # rev = "migrate-to-pnpm"; 17 hash = "sha256-KewRzr0DwCdB4lqpAC5A82Vd7Y9fmRyXwoc2i23Cr+g="; 18 }; 19 20 sourceRoot = "${finalAttrs.src.name}"; 21 22 nativeBuildInputs = [ 23 makeBinaryWrapper 24 nodejs 25 pnpm_9.configHook 26 ]; 27 28 pnpmDeps = pnpm_9.fetchDeps { 29 inherit (finalAttrs) pname version src sourceRoot; 30 fetcherVersion = 1; 31 hash = "sha256-cGS8adYh70urpxQEq3ipl7cgSGNlu5MDdXz/qefakNE="; 32 }; 33 34 buildPhase = '' 35 runHook preBuild 36 # Build if needed 37 pnpm --filter @did-plc/server build || true 38 runHook postBuild 39 ''; 40 41 installPhase = '' 42 runHook preInstall 43 44 mkdir -p $out/{bin,share/did-plc-server} 45 46 # Copy the source and dependencies 47 cp -r . $out/share/did-plc-server/ 48 49 # Create the executable wrapper for just the PLC server 50 makeWrapper "${lib.getExe pnpm_9}" "$out/bin/did-plc-server" \ 51 --chdir "$out/share/did-plc-server" \ 52 --set-default LOG_ENABLED "true" \ 53 --set-default LOG_LEVEL "debug" \ 54 --set-default DATABASE_URL "postgresql://$(whoami)@localhost:5433/plc" \ 55 --add-flags "--filter" \ 56 --add-flags "@did-plc/server" \ 57 --add-flags "start" 58 59 runHook postInstall 60 ''; 61 62 meta = { 63 description = "DID PLC Server from monorepo"; 64 mainProgram = "did-plc-server"; 65 }; 66})