# `checks.script-test-agent-backend-env` — runs ../agent-modules/backend-env.nix's # unit against a stub `bao` that keeps its leaves in files. The cases are in # ./agent-backend-env.sh and the stub is ./agent-backend-env-fake-bao.sh. # # What runs is the unit's rendered `ExecStart`, on the unit's own `PATH` with # the stub in front. The edits are the unit's `/run//` prefix and the # operator's file, both moved under the build directory because the sandbox has # no writable `/run` and no `/agents`. { pkgs, lib, self, nixosSystem, }: let inherit (import ../module-eval/lib.nix { inherit pkgs lib self nixosSystem ; }) agentWith ; earlierFile = "/agents/a1/harness/backend.env"; machine = agentWith { services.hyperhive.agent = { bao.addr = "https://bao.t.local:8200"; useApiKey = true; backendEnvironmentFile = earlierFile; }; }; unit = machine.systemd.services.hive-agent-backend-env; fakeBao = pkgs.runCommand "fake-bao" { } '' install -Dm755 ${./agent-backend-env-fake-bao.sh} $out/bin/bao patchShebangs $out/bin ''; in pkgs.runCommand "hyperhive-script-test-agent-backend-env" { UNIT_SCRIPT = lib.removeSuffix " " unit.serviceConfig.ExecStart; UNIT_PATH = unit.environment.PATH; UNIT_BAO_ADDR = unit.environment.BAO_ADDR; EARLIER_FILE = earlierFile; FAKE_BAO_BIN = "${fakeBao}/bin"; } '' ${pkgs.bash}/bin/bash ${./agent-backend-env.sh} touch "$out" ''