reorganise

This commit is contained in:
andromeda
2026-03-03 18:18:57 +01:00
parent ab30c23600
commit d879df630f
4 changed files with 4 additions and 4 deletions

47
nix/package.nix Normal file
View File

@@ -0,0 +1,47 @@
{
stdenv,
nasm,
qemu,
...
}: let
bootImg = "boot";
in
stdenv.mkDerivation {
pname = "bootler";
version = "0.1.0";
src = ../.;
buildPhase = ''
${nasm}/bin/nasm asm/boot.asm -o boot.bin
${nasm}/bin/nasm asm/kernel.asm -o kernel.bin
dd if=/dev/zero of=${bootImg} bs=512 count=2
dd if=boot.bin of=${bootImg} conv=notrunc
dd if=kernel.bin of=${bootImg} bs=512 seek=1 conv=notrunc
'';
installPhase = ''
mkdir -p $out/bin
cp ${bootImg} $out/bin
# create emulation binary
cat<<EOF>$out/bin/bootler
#!/usr/bin/env bash
# create temp dir
mkdir -p ./.bootler
cp $(echo $out)/bin/${bootImg} ./.bootler/${bootImg}
chmod a+w ./.bootler/${bootImg}
# run image
${qemu}/bin/qemu-system-x86_64 \
-nographic \
-drive file=./.bootler/${bootImg},format=raw,index=0,media=disk
# clean up
rm ./.bootler -r
EOF
chmod +x $out/bin/${bootImg}
chmod +x $out/bin/bootler
'';
}