Compare commits
2
Commits
fe6b03e268
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
27b18a778e | ||
|
|
3eb5cd434c |
+14
-1
@@ -24,6 +24,10 @@ pub struct BootCmd {
|
|||||||
#[clap(long)]
|
#[clap(long)]
|
||||||
forward: Vec<PortForward>,
|
forward: Vec<PortForward>,
|
||||||
|
|
||||||
|
/// Pass a `guestfwd=...` argument to qemu `-nic` argument.
|
||||||
|
#[clap(long)]
|
||||||
|
guestfwd: Vec<String>,
|
||||||
|
|
||||||
/// Override the command to exec in the VM (base64-encoded on the kernel
|
/// Override the command to exec in the VM (base64-encoded on the kernel
|
||||||
/// cmdline as `boco.cmd=<b64>`). Overrides the CMD inferred at build time.
|
/// cmdline as `boco.cmd=<b64>`). Overrides the CMD inferred at build time.
|
||||||
#[clap(long)]
|
#[clap(long)]
|
||||||
@@ -35,6 +39,9 @@ pub struct BootCmd {
|
|||||||
/// relative to the image's WORKINGDIR. Can be repeated.
|
/// relative to the image's WORKINGDIR. Can be repeated.
|
||||||
#[clap(long)]
|
#[clap(long)]
|
||||||
mount: Vec<String>,
|
mount: Vec<String>,
|
||||||
|
|
||||||
|
/// Extra arguments to qemu
|
||||||
|
extra: Vec<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Invoke `qemu` to boot a boco image. See [`BootCmd`] for options
|
/// Invoke `qemu` to boot a boco image. See [`BootCmd`] for options
|
||||||
@@ -46,8 +53,10 @@ pub(crate) fn boot(
|
|||||||
name,
|
name,
|
||||||
memory,
|
memory,
|
||||||
forward,
|
forward,
|
||||||
|
guestfwd,
|
||||||
cmd,
|
cmd,
|
||||||
mount,
|
mount,
|
||||||
|
extra,
|
||||||
}: BootCmd,
|
}: BootCmd,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let reg_dir = registry_dir(&name)?;
|
let reg_dir = registry_dir(&name)?;
|
||||||
@@ -149,6 +158,9 @@ pub(crate) fn boot(
|
|||||||
for forward in &forward {
|
for forward in &forward {
|
||||||
_ = write!(&mut network, ",hostfwd={forward}");
|
_ = write!(&mut network, ",hostfwd={forward}");
|
||||||
}
|
}
|
||||||
|
for guestfwd in &guestfwd {
|
||||||
|
_ = write!(&mut network, ",guestfwd={guestfwd}");
|
||||||
|
}
|
||||||
|
|
||||||
let mut command = Command::new("qemu-system-x86_64");
|
let mut command = Command::new("qemu-system-x86_64");
|
||||||
|
|
||||||
@@ -165,7 +177,8 @@ pub(crate) fn boot(
|
|||||||
.args(["-no-reboot"])
|
.args(["-no-reboot"])
|
||||||
.args(["-append", &cmdline])
|
.args(["-append", &cmdline])
|
||||||
.args(["-nographic"])
|
.args(["-nographic"])
|
||||||
.args(["-nic", &network]);
|
.args(["-nic", &network])
|
||||||
|
.args(&extra);
|
||||||
|
|
||||||
println!("{command:?}");
|
println!("{command:?}");
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user