WIP:aryan/build #1

Closed
chopper wants to merge 4 commits from aryan/build into main
Showing only changes of commit 4b2ab6794c - Show all commits

View file

@ -1,16 +1,21 @@
from subprocess import Popen, PIPE
import os
from pathlib import Path
import argparse
Review

Might be better to use Path.home() from pathlib. Probably just leave it in the home directory, since safe doesn't necessarily exist for new users

Might be better to use `Path.home()` from pathlib. Probably just leave it in the home directory, since safe doesn't necessarily exist for new users
def vm_start(nographic=False):
home = Path.home()
user = os.getlogin()
image = f"/home/{user}/safe/debian.qcow2"
image_src = "var/lib/debian.qcow2"
vm_storage_location = f"/home/arvp/virtual_machines/{user}.qcow2"
image_dest = f"{home}/debian.qcow2"
initialize = [
"qemu-system-x86_64",
"-enable-kvm",
"-m", "2G", # ram allocation
"-nic", "user,hostfwd=tcp::5555-:22", #forward port 5555 in host to port 22 in vm
"-drive", "file=%s,media=disk,if=virtio" % image,
"-drive", "file=%s,media=disk,if=virtio" % image_dest,
# "-nographic",
# "-serial", "mon:stdio",
@ -19,6 +24,22 @@ initialize = [
"-display", "sdl",
]
#Popen(["cp", "/home/chopper/safe/debian.qcow2", f"/home/{user}/nnnnndebian.qcow2"]) #copy the base image to a directory with everyones virtual machines.
if nographic==True:
initialize.append("-nographic")
initialize.append("-serial")
initialize.append("mon:stdio")
#copy the base image to a directory with everyones virtual machines. -n should not overwrite any existing vms.
#subprocess.run(["cp", "-n", image_src, vm_storage_location])
Popen(initialize)
if __name__ == "__main__":
parser = argparse.ArgumentParser(
description="ARVP Onboarding Virtual Machine Launcher! Don't use --nographic if you are in a tmux session. it might explode :3")
parser.add_argument(
"--nographic",
action="store_true",
help="Run QEMU in nographic mode (runs the VM embedded in your terminal instead of opening a new window)",)
args = parser.parse_args()
vm_start(nographic=args.nographic)