diff --git a/hypha/bin/controller.rs b/hypha/bin/controller.rs index f7867d7..9b91e2d 100644 --- a/hypha/bin/controller.rs +++ b/hypha/bin/controller.rs @@ -33,6 +33,8 @@ enum Commands { env: Option>, #[arg(short, long)] attach: bool, + #[arg(long)] + debug: bool, #[arg()] image: String, #[arg(allow_hyphen_values = true, trailing_var_arg = true)] @@ -76,6 +78,7 @@ fn main() -> Result<()> { attach, env, run, + debug, } => { let kernel = map_kernel_path(&store_path, kernel); let initrd = map_initrd_path(&store_path, initrd); @@ -88,6 +91,7 @@ fn main() -> Result<()> { mem, env, if run.is_empty() { None } else { Some(run) }, + debug, )?; println!("launched container: {}", uuid); if attach { diff --git a/hypha/src/ctl/mod.rs b/hypha/src/ctl/mod.rs index 8339a85..04c4ab4 100644 --- a/hypha/src/ctl/mod.rs +++ b/hypha/src/ctl/mod.rs @@ -71,6 +71,7 @@ impl Controller { mem: u64, env: Option>, run: Option>, + debug: bool, ) -> Result<(Uuid, u32)> { let uuid = Uuid::new_v4(); let name = format!("hypha-{uuid}"); @@ -97,6 +98,9 @@ impl Controller { let image_squashfs_loop = self.autoloop.loopify(image_squashfs_path)?; let cfgblk_squashfs_loop = self.autoloop.loopify(cfgblk_squashfs_path)?; + let cmdline_options = [if debug { "debug" } else { "quiet" }, "elevator=noop"]; + let cmdline = cmdline_options.join(" "); + let config = DomainConfig { backend_domid: 0, name: &name, @@ -104,7 +108,7 @@ impl Controller { mem_mb: mem, kernel_path, initrd_path, - cmdline: "quiet elevator=noop", + cmdline: &cmdline, disks: vec![ DomainDisk { vdev: "xvda", diff --git a/initrd/build.sh b/initrd/build.sh index 37cbf6d..319880f 100755 --- a/initrd/build.sh +++ b/initrd/build.sh @@ -6,7 +6,7 @@ cd "$(dirname "${0}")/.." HYPHA_DIR="${PWD}" cargo build --bin hyphactr --release --target x86_64-unknown-linux-gnu INITRD_DIR="$(mktemp -d /tmp/hypha-initrd.XXXXXXXXXXXXX)" -cp target/x86_64-unknown-linux-gnu/release/hyphactr "${INITRD_DIR}/init" +cp "target/x86_64-unknown-linux-gnu/release/hyphactr" "${INITRD_DIR}/init" chmod +x "${INITRD_DIR}/init" cd "${INITRD_DIR}" mkdir -p "${HYPHA_DIR}/target/initrd" diff --git a/scripts/fix.sh b/scripts/fix.sh new file mode 100755 index 0000000..0e56133 --- /dev/null +++ b/scripts/fix.sh @@ -0,0 +1,6 @@ +#!/bin/sh +set -e + +cd "$(dirname "${0}")/.." +cargo fmt --all +cargo clippy --target x86_64-unknown-linux-gnu --fix --allow-dirty --allow-staged