superqemu/examples/simple.js
modeco80 608b7255c9 remove display stuff
instead, we now provide the information for a higher level

also removes a dep so :)
2024-08-23 07:01:21 -04:00

32 lines
No EOL
885 B
JavaScript

// A simple/contrived? example of how to use superqemu.
//
// Note that this example requires a valid desktop environment to function
// due to `-display gtk`, but you can remove it and run it headless.
//
// Also note that while superqemu automatically sets up QEMU to use VNC,
// it does not provide its own VNC client implementation.
import { QemuVM, VMState } from "../dist/index.js";
import pino from 'pino';
let logger = pino();
let vm = new QemuVM(
{
id: "testvm",
command: "qemu-system-x86_64 -M pc,hpet=off,accel=kvm -cpu host -m 512 -display gtk",
snapshot: true
}
);
vm.on('statechange', (newState) => {
logger.info(`state changed to ${newState}`);
if(newState == VMState.Started) {
logger.info(vm.GetDisplayInfo(), `VM started: display info prepends this message`);
}
});
(async () => {
await vm.Start();
})();