diff options
-rwxr-xr-x | scripts/runqemu | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/scripts/runqemu b/scripts/runqemu index 04728673de..ccc557f308 100755 --- a/scripts/runqemu +++ b/scripts/runqemu | |||
@@ -1058,6 +1058,13 @@ class BaseConfig(object): | |||
1058 | 1058 | ||
1059 | self.nfs_running = True | 1059 | self.nfs_running = True |
1060 | 1060 | ||
1061 | def setup_cmd(self): | ||
1062 | cmd = self.get('QB_SETUP_CMD') | ||
1063 | if cmd != '': | ||
1064 | logger.info('Running setup command %s' % str(cmd)) | ||
1065 | if subprocess.call(cmd, shell=True) != 0: | ||
1066 | raise RunQemuError('Failed to run %s' % cmd) | ||
1067 | |||
1061 | def setup_net_bridge(self): | 1068 | def setup_net_bridge(self): |
1062 | self.set('NETWORK_CMD', '-netdev bridge,br=%s,id=net0,helper=%s -device virtio-net-pci,netdev=net0 ' % ( | 1069 | self.set('NETWORK_CMD', '-netdev bridge,br=%s,id=net0,helper=%s -device virtio-net-pci,netdev=net0 ' % ( |
1063 | self.net_bridge, os.path.join(self.bindir_native, 'qemu-oe-bridge-helper'))) | 1070 | self.net_bridge, os.path.join(self.bindir_native, 'qemu-oe-bridge-helper'))) |
@@ -1526,6 +1533,13 @@ class BaseConfig(object): | |||
1526 | else: | 1533 | else: |
1527 | logger.error("Failed to run qemu: %s", process.stderr.read().decode()) | 1534 | logger.error("Failed to run qemu: %s", process.stderr.read().decode()) |
1528 | 1535 | ||
1536 | def cleanup_cmd(self): | ||
1537 | cmd = self.get('QB_CLEANUP_CMD') | ||
1538 | if cmd != '': | ||
1539 | logger.info('Running cleanup command %s' % str(cmd)) | ||
1540 | if subprocess.call(cmd, shell=True) != 0: | ||
1541 | raise RunQemuError('Failed to run %s' % cmd) | ||
1542 | |||
1529 | def cleanup(self): | 1543 | def cleanup(self): |
1530 | if self.cleaned: | 1544 | if self.cleaned: |
1531 | return | 1545 | return |
@@ -1654,6 +1668,7 @@ def main(): | |||
1654 | config.setup_network() | 1668 | config.setup_network() |
1655 | config.setup_rootfs() | 1669 | config.setup_rootfs() |
1656 | config.setup_final() | 1670 | config.setup_final() |
1671 | config.setup_cmd() | ||
1657 | config.start_qemu() | 1672 | config.start_qemu() |
1658 | except RunQemuError as err: | 1673 | except RunQemuError as err: |
1659 | logger.error(err) | 1674 | logger.error(err) |
@@ -1663,6 +1678,7 @@ def main(): | |||
1663 | traceback.print_exc() | 1678 | traceback.print_exc() |
1664 | return 1 | 1679 | return 1 |
1665 | finally: | 1680 | finally: |
1681 | config.cleanup_cmd() | ||
1666 | config.cleanup() | 1682 | config.cleanup() |
1667 | # Deliberately ignore the return code of 'tput smam'. | 1683 | # Deliberately ignore the return code of 'tput smam'. |
1668 | subprocess.call(["tput", "smam"]) | 1684 | subprocess.call(["tput", "smam"]) |