virt-manager/virtinst/floppyinject.py
Fabiano Fidêncio e7a1e1ca5b Add perform_floppy_injections()
Similar to perform_initrd_injections(), which is used by Linux(es)
unattended installations, perform_floppy_injections() is going to be
used by Windows(es) unattended installations.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
2019-04-01 16:28:52 -04:00

37 lines
924 B
Python

#
# Copyright 2019 Red Hat, Inc.
#
# This work is licensed under the GNU GPLv2 or later.
# See the COPYING file in the top-level directory.
import logging
import os
import subprocess
import tempfile
def perform_floppy_injections(injections, scratchdir):
"""
Insert files into the root directory of a floppy
"""
if not injections:
return
tempdir = tempfile.mkdtemp(dir=scratchdir)
os.chmod(tempdir, 0o775)
img = os.path.join(tempdir, "unattended.img")
cmd = ["mkfs.msdos", "-C", img, "1440"]
logging.debug("Running mkisofs: %s", cmd)
output = subprocess.check_output(cmd)
logging.debug("cmd output: %s", output)
for filename in injections:
logging.debug("Copying %s to the floppy.", filename)
cmd = ["mcopy", "-i", img, filename, "::"]
output = subprocess.check_output(cmd)
logging.debug("cmd output: %s", output)
return img