#!/usr/bin/env python3 import argparse from os import makedirs as mkpath from shutil import copy from subprocess import run def main(): parser = argparse.ArgumentParser(description='Build a bootable CD-ROM image using grub-mkrescue') parser.add_argument('kernel', metavar='zcore', type=str, help='path to kernel') parser.add_argument('grub', metavar='grub.cfg', type=str, help='path to grub.cfg') parser.add_argument('mkrescue_args', metavar='MKRESCUE_ARGS', type=str, nargs='*', help='Additional arguments passed to grub-mkrescue') parser.add_argument('--cache', type=str, default='isodir', help='isodir') parser.add_argument('-o', '--output', type=str, default='glitch.iso', help='glitch.iso') args = parser.parse_args() mkpath('isodir/boot/grub', exist_ok=True) copy(args.grub, 'isodir/boot/grub/grub.cfg') mkpath('isodir/boot/glitch', exist_ok=True) copy(args.kernel, 'isodir/boot/glitch/glitch.elf') run(['grub-mkrescue', '-o', args.output, args.cache] + args.mkrescue_args) if __name__ == "__main__": main()