diff --git a/build.py b/build.py index c559fd4..626c73f 100644 --- a/build.py +++ b/build.py @@ -1,24 +1,45 @@ from subprocess import Popen, PIPE import os +from pathlib import Path +import argparse -user = os.getlogin() -image = f"/home/{user}/safe/debian.qcow2" +def vm_start(nographic=False): + 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 + "-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 = [ - "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, + # "-nographic", + # "-serial", "mon:stdio", -# "-nographic", -# "-serial", "mon:stdio", + "-vga", "virtio", # i think this fixes resolution but idk yet + "-display", "sdl", + ] - "-vga", "virtio", # i think this fixes resolution but idk yet - "-display", "sdl", -] + if nographic==True: + 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. -Popen(initialize) + #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)