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,24 +1,45 @@
from subprocess import Popen, PIPE from subprocess import Popen, PIPE
import os 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
user = os.getlogin() def vm_start(nographic=False):
image = f"/home/{user}/safe/debian.qcow2" home = Path.home()
user = os.getlogin()
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
Outdated
Review

This list and the corresponding popen should be in a function that accepts an argument to toggle those nographic flags

This list and the corresponding popen should be in a function that accepts an argument to toggle those nographic flags
"-nic", "user,hostfwd=tcp::5555-:22", #forward port 5555 in host to port 22 in vm
"-drive", "file=%s,media=disk,if=virtio" % image_dest,
initialize = [ # "-nographic",
"qemu-system-x86_64", # "-serial", "mon:stdio",
"-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,
# "-nographic", "-vga", "virtio", # i think this fixes resolution but idk yet
# "-serial", "mon:stdio", "-display", "sdl",
]
"-vga", "virtio", # i think this fixes resolution but idk yet if nographic==True:
"-display", "sdl", initialize.append("-nographic")
] initialize.append("-serial")
initialize.append("mon:stdio")
#Popen(["cp", "/home/chopper/safe/debian.qcow2", f"/home/{user}/nnnnndebian.qcow2"]) #copy the base image to a directory with everyones virtual machines. #copy the base image to a directory with everyones virtual machines. -n should not overwrite any existing vms.
Popen(initialize) #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)