diff --git a/build.py b/build.py index 387d8e9..626c73f 100644 --- a/build.py +++ b/build.py @@ -1,3 +1,45 @@ from subprocess import Popen, PIPE +import os +from pathlib import Path +import argparse -print("meow") +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, + + # "-nographic", + # "-serial", "mon:stdio", + + "-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") + + #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)