rwx/grub/__init__.py
2023-10-10 22:11:57 +02:00

30 lines
727 B
Python

from .. import ps
COMPRESSION = 'xz'
ENV_BYTES = 1024
ENV_COMMENT = '#'
ENV_HEADER = f'''{ENV_COMMENT} GRUB Environment Block
'''
MODULES = {
'i386-pc': [
('biosdisk'),
('ntldr'),
]
}
def make_image(image_format: str, image_path: str, modules: list[str],
memdisk_path: str, pubkey_path: str=None) -> None:
args = [
('grub-mkimage'),
('--compress', COMPRESSION),
('--format', image_format),
('--output', image_path),
('--memdisk', memdisk_path),
]
if pubkey_path:
args.append(('--pubkey', pubkey_path))
args.extend(modules)
if modules := MODULES.get(image_format, None):
args.extend(modules)
ps.run(*args)