Files
Pigeon/vm.nix
T

25 lines
624 B
Nix

{
writeShellApplication,
coreutils, firecracker, jq,
pigeon-vmconfig
}:
writeShellApplication {
name = "pigeon-vm";
runtimeInputs = [ coreutils firecracker jq ];
text = ''
[ "$#" -ne 3 ] && exit 1
CONFIG="$(mktemp)"
trap 'rm -rf "$CONFIG"' EXIT
jq --arg s "$1" --arg g "$2" --arg r "$3" '
(.drives[] | select(.drive_id == "student").path_on_host) = $s |
(.drives[] | select(.drive_id == "grader").path_on_host) = $g |
(.drives[] | select(.drive_id == "results").path_on_host) = $r
' ${pigeon-vmconfig} >"$CONFIG"
firecracker --no-api --config-file "$CONFIG"
'';
}