hyperhive/nix/assets.nix
atlas db2a48cde6 docs/gotchas.md: extract nix/{assets,docs,templates/weston-vnc} prose (#718 batch 3)
- assets.nix: cargo-cache-invalidation rationale → "Split asset
  derivations away from the rust workspace" section.
- templates/weston-vnc.nix: port allocation, weston bind-address
  quirk, PAM service name, Type=simple choice, idle-time=0 →
  "Weston VNC compositor (per-agent hyperhive.gui.enable)" section.
- docs/default.nix: rendering pipeline + subtree-pick + output-tree
  history → "Nix options reference" section.

In-code comments trimmed to short purpose statements + docs pointers.
description = '' blocks (operator-facing options docs) preserved per
iris #718.

`nix flake check` + `nix build .#docs` clean.
2026-05-31 15:24:39 +02:00

61 lines
1.7 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
stdenv,
lib,
librsvg,
}:
# Branding SVG/PNG family + claude prompts, split out from the rust
# workspace so a tweak here doesn't invalidate the rust cargo cache.
# Rationale + agent-configs PNG rendering: docs/gotchas.md::Split asset
# derivations away from the rust workspace.
#
# Output layout:
# $out/share/hyperhive/branding/{hyperhive,agent-configs}.{svg,png}
# $out/share/hyperhive/prompts/{system.md, claude-settings.json}
stdenv.mkDerivation {
pname = "hyperhive-assets";
version = "0.1.0";
# Narrow `srcs` (branding/ + hive-ag3nt/prompts/) is what decouples
# this derivation's input hash from the rest of the tree.
srcs = [
../branding
../hive-ag3nt/prompts
];
unpackPhase = ''
runHook preUnpack
cp -r ${../branding} branding
cp -r ${../hive-ag3nt/prompts} prompts
chmod -R u+w branding prompts
runHook postUnpack
'';
nativeBuildInputs = [ librsvg ];
# 300×300 matches branding/hyperhive.png — the size Forgejo's avatar
# endpoint accepts without resampling on upload.
buildPhase = ''
runHook preBuild
rsvg-convert --width 300 --height 300 \
-o branding/agent-configs.png \
branding/agent-configs.svg
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share/hyperhive
cp -r branding $out/share/hyperhive/branding
cp -r prompts $out/share/hyperhive/prompts
runHook postInstall
'';
# Pure data — no executables to fixup, no shared libs to patchelf.
dontFixup = true;
meta = {
description = "hyperhive static assets (branding + claude prompts)";
homepage = "https://forge.darkest.space/hyperhive/hyperhive";
license = lib.licenses.mit;
};
}