aboutsummaryrefslogtreecommitdiff
path: root/scripts/mkiso.py
blob: b1f1dc5d6bcc1c79fcad7b315fefb8f88a72a2c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/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()