diff --git a/ci/run-wasi-nn-example.sh b/ci/run-wasi-nn-example.sh index 74bab3bd30fc..6f433bc3eff2 100755 --- a/ci/run-wasi-nn-example.sh +++ b/ci/run-wasi-nn-example.sh @@ -39,7 +39,7 @@ pushd $WASMTIME_DIR/crates/wasi-nn/examples/classification-example cargo build --release --target=wasm32-wasi cp target/wasm32-wasi/release/wasi-nn-example.wasm $TMP_DIR popd -cargo run -- run --dir fixture::$TMP_DIR -S nn $TMP_DIR/wasi-nn-example.wasm +cargo run -- run --dir $TMP_DIR::fixture -S nn $TMP_DIR/wasi-nn-example.wasm # Build and run another example, this time using Wasmtime's graph flag to # preload the model. @@ -47,7 +47,7 @@ pushd $WASMTIME_DIR/crates/wasi-nn/examples/classification-example-named cargo build --release --target=wasm32-wasi cp target/wasm32-wasi/release/wasi-nn-example-named.wasm $TMP_DIR popd -cargo run -- run --dir fixture::$TMP_DIR -S nn,nn-graph=openvino::$TMP_DIR \ +cargo run -- run --dir $TMP_DIR::fixture -S nn,nn-graph=openvino::$TMP_DIR \ $TMP_DIR/wasi-nn-example-named.wasm # Clean up the temporary directory only if it was not specified (users may want diff --git a/docs/WASI-tutorial.md b/docs/WASI-tutorial.md index e1e83faebbc7..1ca52be105a5 100644 --- a/docs/WASI-tutorial.md +++ b/docs/WASI-tutorial.md @@ -240,7 +240,7 @@ links as well. `wasmtime` also has the ability to remap directories: ``` -$ wasmtime --dir=. --dir=/tmp::/var/tmp demo.wasm test.txt /tmp/somewhere.txt +$ wasmtime --dir=. --dir=/var/tmp::/tmp demo.wasm test.txt /tmp/somewhere.txt $ cat /var/tmp/somewhere.txt hello world ``` diff --git a/src/commands/run.rs b/src/commands/run.rs index dc7c8ab05c71..dfd24a002c9e 100644 --- a/src/commands/run.rs +++ b/src/commands/run.rs @@ -37,12 +37,12 @@ fn parse_env_var(s: &str) -> Result<(String, Option)> { fn parse_dirs(s: &str) -> Result<(String, String)> { let mut parts = s.split("::"); - let guest = parts.next().unwrap(); - let host = match parts.next() { - Some(host) => host, - None => guest, + let host = parts.next().unwrap(); + let guest = match parts.next() { + Some(guest) => guest, + None => host, }; - Ok((guest.into(), host.into())) + Ok((host.into(), guest.into())) } fn parse_preloads(s: &str) -> Result<(String, PathBuf)> { @@ -62,11 +62,11 @@ pub struct RunCommand { /// Grant access of a host directory to a guest. /// - /// If specified as just `GUEST_DIR` then the same directory name on the - /// host is made available within the guest. If specified as `GUEST::HOST` + /// If specified as just `HOST_DIR` then the same directory name on the + /// host is made available within the guest. If specified as `HOST::GUEST` /// then the `HOST` directory is opened and made available as the name /// `GUEST` in the guest. - #[clap(long = "dir", value_name = "GUEST_DIR[::HOST_DIR]", value_parser = parse_dirs)] + #[clap(long = "dir", value_name = "HOST_DIR[::GUEST_DIR]", value_parser = parse_dirs)] dirs: Vec<(String, String)>, /// Pass an environment variable to the program. @@ -233,7 +233,7 @@ impl RunCommand { fn compute_preopen_dirs(&self) -> Result> { let mut preopen_dirs = Vec::new(); - for (guest, host) in self.dirs.iter() { + for (host, guest) in self.dirs.iter() { preopen_dirs.push(( guest.clone(), Dir::open_ambient_dir(host, ambient_authority()) diff --git a/tests/all/cli_tests.rs b/tests/all/cli_tests.rs index b67ecb61283f..2c8aa81222a1 100644 --- a/tests/all/cli_tests.rs +++ b/tests/all/cli_tests.rs @@ -1116,7 +1116,7 @@ mod test_programs { run_wasmtime(&[ "run", "-Wcomponent-model", - &format!("--dir=/::{}", dir.path().to_str().unwrap()), + &format!("--dir={}::/", dir.path().to_str().unwrap()), CLI_FILE_READ_COMPONENT, ])?; Ok(()) @@ -1132,7 +1132,7 @@ mod test_programs { run_wasmtime(&[ "run", "-Wcomponent-model", - &format!("--dir=/::{}", dir.path().to_str().unwrap()), + &format!("--dir={}::/", dir.path().to_str().unwrap()), CLI_FILE_APPEND_COMPONENT, ])?; @@ -1157,7 +1157,7 @@ mod test_programs { run_wasmtime(&[ "run", "-Wcomponent-model", - &format!("--dir=/::{}", dir.path().to_str().unwrap()), + &format!("--dir={}::/", dir.path().to_str().unwrap()), CLI_FILE_DIR_SYNC_COMPONENT, ])?; @@ -1211,7 +1211,7 @@ mod test_programs { run_wasmtime(&[ "run", "-Wcomponent-model", - &format!("--dir=/::{}", dir.path().to_str().unwrap()), + &format!("--dir={}::/", dir.path().to_str().unwrap()), CLI_DIRECTORY_LIST_COMPONENT, ])?; Ok(()) diff --git a/tests/all/wasi_testsuite.rs b/tests/all/wasi_testsuite.rs index 093a633c9826..9928182b005f 100644 --- a/tests/all/wasi_testsuite.rs +++ b/tests/all/wasi_testsuite.rs @@ -110,7 +110,7 @@ fn build_command>(module: P, extra_flags: &[&str], spec: &Spec) - if let Some(dirs) = &spec.dirs { for dir in dirs { cmd.arg("--dir"); - cmd.arg(format!("{}::{}", dir, parent_dir.join(dir).display())); + cmd.arg(format!("{}::{}", parent_dir.join(dir).display(), dir)); } } // Add environment variables as CLI arguments.