char/topaz-flake

git clone https://git.t4t.associates/char/topaz-flake

Charlotte Somdeploy city-role-bot37dcc24

main
1.5 KiB66 linesraw
1{
2  fetchgit,
3  fetchPnpmDeps,
4  lib,
5  makeWrapper,
6  nodejs,
7  pnpm_11,
8  pnpmConfigHook,
9  stdenvNoCC,
10}:
11stdenvNoCC.mkDerivation (finalAttrs: {
12  pname = "city-role-bot";
13  version = "0-unstable-2026-09-04";
14
15  src = fetchgit {
16    url = "https://git.t4t.associates/char-slop/city-role-bot.git";
17    rev = "d72003f19e53e6406522d8573015aa5fee1c16de";
18    hash = "sha256-yzisagfzT1ekSKgGoOWnipykJSEzn3ofTNmGIM14xVk=";
19  };
20
21  postPatch = ''
22    substituteInPlace src/store.ts \
23      --replace-fail "new URL('../data/', import.meta.url)" \
24      "new URL(process.env.CITY_ROLE_BOT_DATA_DIR ?? '../data/', import.meta.url)"
25  '';
26
27  pnpmDeps = fetchPnpmDeps {
28    inherit (finalAttrs) pname version src postPatch;
29    pnpm = pnpm_11;
30    fetcherVersion = 4;
31    hash = "sha256-pwVrivKuMB/S+0Ir0j9f4iLFKVO6sXRsxPzklSDODdo=";
32  };
33
34  nativeBuildInputs = [
35    makeWrapper
36    nodejs
37    pnpm_11
38    pnpmConfigHook
39  ];
40
41  dontBuild = true;
42
43  doCheck = true;
44  checkPhase = ''
45    runHook preCheck
46    pnpm run check
47    runHook postCheck
48  '';
49
50  installPhase = ''
51    runHook preInstall
52
53    mkdir -p $out/lib/city-role-bot
54    cp -r node_modules src $out/lib/city-role-bot/
55    makeWrapper ${lib.getExe nodejs} $out/bin/city-role-bot \
56      --add-flags "$out/lib/city-role-bot/src/index.ts"
57
58    runHook postInstall
59  '';
60
61  meta = {
62    description = "Reaction-role Discord bot";
63    homepage = "https://git.t4t.associates/char-slop/city-role-bot";
64    mainProgram = "city-role-bot";
65  };
66})