A simple, zero-configuration script to quickly boot FreeBSD ISO images using QEMU

feat: enhance flag parsing for VM configuration options

+32 -14
+8
src/config.ts
··· 77 77 options: Options, 78 78 ): Effect.Effect<Options, never, never> => { 79 79 const { flags } = parseFlags(Deno.args); 80 + flags.image = flags.i || flags.image; 81 + flags.memory = flags.m || flags.memory; 82 + flags.cpus = flags.C || flags.cpus; 83 + flags.cpu = flags.c || flags.cpu; 84 + flags.portForward = flags.p || flags.portForward; 85 + flags.bridge = flags.b || flags.bridge; 86 + flags.size = flags.s || flags.size; 87 + 80 88 const defaultConfig: VmConfig = { 81 89 vm: { 82 90 iso: _.get(config, "vm.iso"),
+7 -7
src/subcommands/run.ts
··· 84 84 function mergeFlags(image: Image): Options { 85 85 const { flags } = parseFlags(Deno.args); 86 86 return { 87 - cpu: flags.cpu ? flags.cpu : "host", 88 - cpus: flags.cpus ? flags.cpus : 2, 89 - memory: flags.memory ? flags.memory : "2G", 87 + cpu: (flags.cpu || flags.c) ? (flags.cpu || flags.c) : "host", 88 + cpus: (flags.cpus || flags.C) ? (flags.cpus || flags.C) : 2, 89 + memory: (flags.memory || flags.m) ? (flags.memory || flags.m) : "2G", 90 90 image: image.path, 91 - bridge: flags.bridge, 92 - portForward: flags.portForward, 93 - detach: flags.detach, 91 + bridge: flags.bridge || flags.b, 92 + portForward: flags.portForward || flags.p, 93 + detach: flags.detach || flags.d, 94 94 install: false, 95 95 diskFormat: image.format, 96 - volume: flags.volume, 96 + volume: flags.volume || flags.v, 97 97 }; 98 98 }
+17 -7
src/subcommands/start.ts
··· 305 305 const { flags } = parseFlags(Deno.args); 306 306 return { 307 307 ...vm, 308 - memory: flags.memory ? String(flags.memory) : vm.memory, 309 - cpus: flags.cpus ? Number(flags.cpus) : vm.cpus, 310 - cpu: flags.cpu ? String(flags.cpu) : vm.cpu, 308 + memory: (flags.memory || flags.m) 309 + ? String(flags.memory || flags.m) 310 + : vm.memory, 311 + cpus: (flags.cpus || flags.C) ? Number(flags.cpus || flags.C) : vm.cpus, 312 + cpu: (flags.cpu || flags.c) ? String(flags.cpu || flags.c) : vm.cpu, 311 313 diskFormat: flags.diskFormat ? String(flags.diskFormat) : vm.diskFormat, 312 - portForward: flags.portForward ? String(flags.portForward) : vm.portForward, 313 - drivePath: flags.image ? String(flags.image) : vm.drivePath, 314 - bridge: flags.bridge ? String(flags.bridge) : vm.bridge, 315 - diskSize: flags.size ? String(flags.size) : vm.diskSize, 314 + portForward: (flags.portForward || flags.p) 315 + ? String(flags.portForward || flags.p) 316 + : vm.portForward, 317 + drivePath: (flags.image || flags.i) 318 + ? String(flags.image || flags.i) 319 + : vm.drivePath, 320 + bridge: (flags.bridge || flags.b) 321 + ? String(flags.bridge || flags.b) 322 + : vm.bridge, 323 + diskSize: (flags.size || flags.s) 324 + ? String(flags.size || flags.s) 325 + : vm.diskSize, 316 326 }; 317 327 }