blob: bb4d72e90c9c73a5b4dfd3f82fc9e886ce7418ea [file] [log] [blame]
# -*- mode: python -*-
# qemu_helpers: Helpers to find QEMU and handle its quirks
# Copyright © 2014 Andy Lutomirski
# Licensed under the GPLv2, which is available in the virtme distribution
# as a file called LICENSE with SHA-256 hash:
# 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643
import os
import re
import shutil
import subprocess
class Qemu(object):
def __init__(self, arch):
self.arch = arch
self.qemubin = shutil.which('qemu-system-%s' % arch)
if self.qemubin is None and arch == os.uname().machine:
self.qemubin = shutil.which('qemu-kvm')
if self.qemubin is None:
raise ValueError('cannot find qemu for %s' % arch)
self.version = None
def probe(self):
if self.version is None:
self.version = subprocess.check_output([self.qemubin, '--version'])\
.decode('utf-8')
self.cannot_overmount_virtfs = (
re.search(r'version 1\.[012345]', self.version) is not None)
def quote_optarg(self, a):
"""Quote an argument to an option."""
return a.replace(',', ',,')