dyn calling works + vibed dioxus ui components + some mo provision prototyping
This commit is contained in:
83
parts/mos/disk_provision.py
Normal file
83
parts/mos/disk_provision.py
Normal file
@@ -0,0 +1,83 @@
|
||||
import subprocess
|
||||
|
||||
config = {
|
||||
"qcow_disk": "/home/me/work/config/mize/parts/mos/build/stick.qcow2",
|
||||
"root_dir": "/home/me/work/config/mize/parts/mos/build/root",
|
||||
"target": "/dev/nbd0",
|
||||
"partitions": [
|
||||
{
|
||||
"type": "fat32" ,
|
||||
"size": "200M",
|
||||
"flags": [ "esp" ]
|
||||
},
|
||||
{
|
||||
"type": "ext4" ,
|
||||
"size": "100%",
|
||||
},
|
||||
],
|
||||
"isofs": {
|
||||
"volid": "archiso-project",
|
||||
},
|
||||
}
|
||||
|
||||
def set_config(path, val):
|
||||
config[path] = val
|
||||
|
||||
|
||||
def get_config(path):
|
||||
return config[path]
|
||||
|
||||
|
||||
def connect_qemu_nbd():
|
||||
disk = get_config("qcow_disk")
|
||||
sh(f"sudo qemu-nbd --connect=/dev/nbd0 -f qcow2 {disk}")
|
||||
|
||||
|
||||
def disconnect_qemu_nbd():
|
||||
sh(f"sudo qemu-nbd --disconnect=/dev/nbd0")
|
||||
|
||||
def make_busybod_root_from_nixpkgs():
|
||||
path = sub
|
||||
pass
|
||||
|
||||
def flash_isofs():
|
||||
volid = get_config("isofs.volid")
|
||||
isolinux = get_config("isofs.linux")
|
||||
boot_cat = get_config("isofs.boot_cat")
|
||||
isohybrid_mbr = get_config("isofs.hybrid_mbr") # /usr/lib/syslinux/bios/isohdpfx.bin"
|
||||
efiboot_img = get_config("isofs.efiboot.img")
|
||||
output = get_config("target")
|
||||
root_fs = get_config("root_dir")
|
||||
subprocess.run([
|
||||
"xorriso", "as", "mkisofs",
|
||||
"-iso-level", "3", "-full-iso9660-filenames",
|
||||
"-volid", volid,
|
||||
"-eltorito-boot", isolinux,
|
||||
"-eltorito-catalog", boot_cat,
|
||||
"-no-emul-boot", "-boot-load-size", "4", "-boot-info-table",
|
||||
"-isohybrid-mbr", isohybrid_mbr,
|
||||
"-eltorito-alt-boot",
|
||||
"-e", efiboot_img,
|
||||
"-no-emul-boot",
|
||||
"-isohybrid-gpt-basdat",
|
||||
"-output", output,
|
||||
root_fs,
|
||||
])
|
||||
|
||||
def sh(cmd):
|
||||
subprocess.run(["sh", "-c", cmd])
|
||||
|
||||
def provision():
|
||||
try:
|
||||
connect_qemu_nbd()
|
||||
|
||||
|
||||
finally:
|
||||
disconnect_qemu_nbd()
|
||||
|
||||
def main():
|
||||
provision()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user