Files
Pigeon/rootfs.nix
T

29 lines
744 B
Nix
Raw Normal View History

2026-10-15 01:10:33 -04:00
{
closureInfo, runCommand,
e2fsprogs,
pigeon-disc-size ? "1G",
2026-10-15 01:40:00 -04:00
pigeon-toolchain,
2026-10-15 01:10:33 -04:00
pigeon-init,
pigeon-run
}:
let
2026-10-15 01:40:00 -04:00
closure = closureInfo { rootPaths = [ pigeon-toolchain ]; };
2026-10-15 01:10:33 -04:00
in
runCommand "pigeon-rootfs" { nativeBuildInputs = [ e2fsprogs ]; } ''
mkdir -p rootfs && cd rootfs
mkdir -p dev proc sys tmp usr nix/store root/student root/grader root/results
chmod 700 root
for FILE in $(cat ${closure}/store-paths); do
cp -a "$FILE" nix/store
done
ln -s ${pigeon-toolchain}/bin bin
ln -s ${pigeon-toolchain}/bin usr/bin
install -m 755 ${pigeon-init}/bin/pigeon-init init
install -m 755 ${pigeon-run}/bin/pigeon-run run
cd ..
mkfs.ext4 -q -F -d rootfs $out ${pigeon-disc-size}
''