From 1e7f5c43b8f2b6bdf20f1d55826e4091e381e286 Mon Sep 17 00:00:00 2001 From: Ahurac Date: Sat, 9 Mar 2024 23:28:50 +0100 Subject: [PATCH] launchers/kvm : python -> sh --- qemu/launchers/kvm | 47 +++++++++++++++++----------------------------- 1 file changed, 17 insertions(+), 30 deletions(-) diff --git a/qemu/launchers/kvm b/qemu/launchers/kvm index 26df626..ff41c26 100755 --- a/qemu/launchers/kvm +++ b/qemu/launchers/kvm @@ -1,34 +1,21 @@ -#!/usr/bin/env python3 +#!/usr/bin/env sh +set -x -# Set number of vCPUs to use to the environment variable QEMUSH_NPROC or -# half of total vCPUs installed if it fails -try: - from os import environ - nproc = environ['QEMUSH_NPROC'] -except KeyError: - from multiprocessing import cpu_count - nproc = str(cpu_count() // 2) +# How many CPU cores to use +nproc=$QEMUSH_NPROC +[ -z "$nproc" ] && nproc=$(($(nproc) / 2)) -# Set amount of RAM to use to the environment variable QEMUSH_RAM or half -# of total RAM installed if it fails -try: - ram = environ['QEMUSH_RAM'] -except KeyError: - from psutil import virtual_memory - ram = str(virtual_memory().available // 2 // (1024 ** 2)) +# How much RAM to use +ram=$QEMUSH_RAM +[ -z "$ram" ] && ram=$(($(free | grep '^Mem:\s' | awk '{ print $NF }') / 2))K -# Set the command to initialize; all required parameters to make a sane KVM -# are included and optional arguments are appended from argv -from sys import argv -command = [ - 'qemu-system-x86_64', - '-enable-kvm', - '-M', 'q35', - '-cpu', 'host', '-smp', nproc, - '-m', ram, -] + argv[1:] +# Set the arguments +set -- qemu-system-x86_64 \ + -enable-kvm \ + -M q35 \ + -cpu host -smp "$nproc" \ + -m "$ram" \ + "$@" -# Print the final command and replace the main process with it -print(command) -from os import execvp -execvp(command[0], command) +# Start the machine +exec "$@"