mirror of
https://github.com/mii443/wasmer.git
synced 2025-12-08 05:38:19 +00:00
cargo fmt
This commit is contained in:
@@ -260,7 +260,8 @@ fn parse_cli_args() -> Result<(), anyhow::Error> {
|
||||
&package.registry,
|
||||
&package.name,
|
||||
&package.version,
|
||||
).map_err(|e| anyhow!("{e}"))?;
|
||||
)
|
||||
.map_err(|e| anyhow!("{e}"))?;
|
||||
|
||||
// Try finding the local package
|
||||
let mut args_without_package = args.clone();
|
||||
|
||||
@@ -76,13 +76,16 @@ pub struct RunWithoutFile {
|
||||
impl RunWithoutFile {
|
||||
/// Given a local path, returns the `Run` command (overriding the `--path` argument).
|
||||
pub fn into_run_args(mut self, pathbuf: PathBuf, manifest: Option<wapm_toml::Manifest>) -> Run {
|
||||
|
||||
#[cfg(feature = "wasi")] {
|
||||
#[cfg(feature = "wasi")]
|
||||
{
|
||||
let pkg_fs = match pathbuf.parent() {
|
||||
Some(parent) => parent.join("pkg_fs"),
|
||||
None => pathbuf.join("pkg_fs"),
|
||||
};
|
||||
if let Some(mut m) = manifest.as_ref().and_then(|m| m.package.pkg_fs_mount_point.clone()) {
|
||||
if let Some(mut m) = manifest
|
||||
.as_ref()
|
||||
.and_then(|m| m.package.pkg_fs_mount_point.clone())
|
||||
{
|
||||
if m == "." {
|
||||
self.wasi.map_dir("/", pkg_fs);
|
||||
} else {
|
||||
@@ -108,7 +111,10 @@ impl RunWithoutFile {
|
||||
pathbuf.join(real_dir)
|
||||
};
|
||||
if !real_dir.exists() {
|
||||
println!("warning: cannot map {alias:?} to {}: directory does not exist", real_dir.display());
|
||||
println!(
|
||||
"warning: cannot map {alias:?} to {}: directory does not exist",
|
||||
real_dir.display()
|
||||
);
|
||||
continue;
|
||||
}
|
||||
let alias_pathbuf = std::path::Path::new(&real_dir).to_path_buf();
|
||||
@@ -123,11 +129,16 @@ impl RunWithoutFile {
|
||||
}
|
||||
|
||||
let root_display = format!("{}", alias_pathbuf.display());
|
||||
for entry in walkdir::WalkDir::new(&alias_pathbuf).into_iter().filter_entry(|e| is_dir(e)).filter_map(|e| e.ok()) {
|
||||
for entry in walkdir::WalkDir::new(&alias_pathbuf)
|
||||
.into_iter()
|
||||
.filter_entry(|e| is_dir(e))
|
||||
.filter_map(|e| e.ok())
|
||||
{
|
||||
let pathbuf = entry.path().canonicalize().unwrap();
|
||||
let path = format!("{}", pathbuf.display());
|
||||
let relativepath = path.replacen(&root_display, "", 1);
|
||||
self.wasi.map_dir(&format!("/{alias}{relativepath}"), pathbuf);
|
||||
self.wasi
|
||||
.map_dir(&format!("/{alias}{relativepath}"), pathbuf);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -279,8 +290,10 @@ impl Run {
|
||||
let env = FunctionEnv::new(&mut store, em_env);
|
||||
let mut emscripten_globals = EmscriptenGlobals::new(&mut store, &env, &module)
|
||||
.map_err(|e| anyhow!("{}", e))?;
|
||||
env.as_mut(&mut store)
|
||||
.set_data(&emscripten_globals.data, self.wasi.mapped_dirs.clone().into_iter().collect());
|
||||
env.as_mut(&mut store).set_data(
|
||||
&emscripten_globals.data,
|
||||
self.wasi.mapped_dirs.clone().into_iter().collect(),
|
||||
);
|
||||
let import_object =
|
||||
generate_emscripten_env(&mut store, &env, &mut emscripten_globals);
|
||||
let mut instance = match Instance::new(&mut store, &module, &import_object) {
|
||||
|
||||
@@ -52,10 +52,10 @@ pub struct Wasi {
|
||||
|
||||
#[allow(dead_code)]
|
||||
impl Wasi {
|
||||
|
||||
pub fn map_dir(&mut self, alias: &str, target_on_disk: PathBuf) {
|
||||
self.mapped_dirs.push((alias.to_string(), target_on_disk));
|
||||
self.pre_opened_directories.push(std::path::Path::new(alias).to_path_buf());
|
||||
self.pre_opened_directories
|
||||
.push(std::path::Path::new(alias).to_path_buf());
|
||||
}
|
||||
|
||||
pub fn set_env(&mut self, key: &str, value: &str) {
|
||||
|
||||
8
lib/emscripten/src/env/unix/mod.rs
vendored
8
lib/emscripten/src/env/unix/mod.rs
vendored
@@ -1,7 +1,5 @@
|
||||
/// NOTE: These syscalls only support wasm_32 for now because they take u32 offset
|
||||
use libc::{
|
||||
c_int, getgrnam as libc_getgrnam, getpwnam as libc_getpwnam, sysconf,
|
||||
};
|
||||
use libc::{c_int, getgrnam as libc_getgrnam, getpwnam as libc_getpwnam, sysconf};
|
||||
use std::ffi::{CStr, CString};
|
||||
use std::mem;
|
||||
use std::os::raw::c_char;
|
||||
@@ -84,7 +82,9 @@ pub fn _unsetenv(mut ctx: FunctionEnvMut<EmEnv>, name: c_int) -> c_int {
|
||||
let em_env = ctx.data();
|
||||
let memory = em_env.memory(0);
|
||||
let name_addr = emscripten_memory_pointer!(memory.view(&ctx), name) as *const c_char;
|
||||
unsafe { CStr::from_ptr(name_addr) }.to_string_lossy().to_string()
|
||||
unsafe { CStr::from_ptr(name_addr) }
|
||||
.to_string_lossy()
|
||||
.to_string()
|
||||
};
|
||||
|
||||
debug!("=> name({:?})", name);
|
||||
|
||||
@@ -87,9 +87,8 @@ impl Default for EmscriptenState {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
env_vars: std::env::vars_os()
|
||||
.filter_map(|(k, v)| {
|
||||
Some((k.to_str()?.to_string(), v.to_str()?.to_string()))
|
||||
}).collect(),
|
||||
.filter_map(|(k, v)| Some((k.to_str()?.to_string(), v.to_str()?.to_string())))
|
||||
.collect(),
|
||||
cli_args: Vec::new(),
|
||||
}
|
||||
}
|
||||
@@ -155,10 +154,7 @@ impl EmEnv {
|
||||
*w = Some(EmscriptenData::new(data.clone(), mapped_dirs));
|
||||
}
|
||||
|
||||
pub fn get_env_var(
|
||||
&self,
|
||||
key: &str,
|
||||
) -> Option<String> {
|
||||
pub fn get_env_var(&self, key: &str) -> Option<String> {
|
||||
let w = self.state.lock().ok()?;
|
||||
let result = w.env_vars.get(key).cloned();
|
||||
result
|
||||
@@ -169,19 +165,12 @@ impl EmEnv {
|
||||
w.env_vars.len()
|
||||
}
|
||||
|
||||
pub fn set_env_var(
|
||||
&self,
|
||||
key: &str,
|
||||
value: &str,
|
||||
) -> Option<String> {
|
||||
pub fn set_env_var(&self, key: &str, value: &str) -> Option<String> {
|
||||
let mut w = self.state.lock().ok()?;
|
||||
w.env_vars.insert(key.to_string(), value.to_string())
|
||||
}
|
||||
|
||||
pub fn remove_env_var(
|
||||
&self,
|
||||
key: &str,
|
||||
) -> Option<String> {
|
||||
pub fn remove_env_var(&self, key: &str) -> Option<String> {
|
||||
let mut w = self.state.lock().ok()?;
|
||||
w.env_vars.remove(key)
|
||||
}
|
||||
|
||||
@@ -477,7 +477,6 @@ pub fn get_all_local_packages() -> Vec<LocalPackage> {
|
||||
let mut packages = Vec::new();
|
||||
|
||||
'outer: for registry in get_all_available_registries().unwrap_or_default() {
|
||||
|
||||
let host = match url::Url::parse(®istry) {
|
||||
Ok(o) => o.host_str().map(|s| s.to_string()),
|
||||
Err(_) => continue 'outer,
|
||||
@@ -588,15 +587,18 @@ pub enum QueryPackageError {
|
||||
name: String,
|
||||
version: Option<String>,
|
||||
packages: Vec<PackageDownloadInfo>,
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
impl QueryPackageError {
|
||||
pub fn get_packages(&self) -> Vec<PackageDownloadInfo> {
|
||||
match self {
|
||||
QueryPackageError::AmbigouusName { name: _, packages } |
|
||||
QueryPackageError::NoPackageFound { name: _, version: _, packages }
|
||||
=> packages.clone(),
|
||||
QueryPackageError::AmbigouusName { name: _, packages }
|
||||
| QueryPackageError::NoPackageFound {
|
||||
name: _,
|
||||
version: _,
|
||||
packages,
|
||||
} => packages.clone(),
|
||||
_ => Vec::new(),
|
||||
}
|
||||
}
|
||||
@@ -622,8 +624,10 @@ pub fn query_package_from_registry(
|
||||
})
|
||||
};
|
||||
|
||||
let response: get_packages_query::ResponseData = execute_query(registry_url, "", &q)
|
||||
.map_err(|e| QueryPackageError::ErrorSendingQuery(format!("Error sending GetPackagesQuery: {e}")))?;
|
||||
let response: get_packages_query::ResponseData =
|
||||
execute_query(registry_url, "", &q).map_err(|e| {
|
||||
QueryPackageError::ErrorSendingQuery(format!("Error sending GetPackagesQuery: {e}"))
|
||||
})?;
|
||||
|
||||
let available_packages = response
|
||||
.package
|
||||
@@ -695,7 +699,7 @@ pub fn query_package_from_registry(
|
||||
version: version.as_ref().map(|s| s.to_string()),
|
||||
packages: available_packages,
|
||||
});
|
||||
},
|
||||
}
|
||||
Some(s) => Ok(s),
|
||||
}
|
||||
}
|
||||
@@ -752,7 +756,10 @@ pub fn download_and_unpack_targz(url: &str, target_path: &Path) -> Result<PathBu
|
||||
Ok(target_path.to_path_buf())
|
||||
}
|
||||
|
||||
pub fn install_package(name: &str, version: Option<&str>) -> Result<(LocalPackage, PathBuf), String> {
|
||||
pub fn install_package(
|
||||
name: &str,
|
||||
version: Option<&str>,
|
||||
) -> Result<(LocalPackage, PathBuf), String> {
|
||||
let registries = get_all_available_registries()?;
|
||||
let mut url_of_package = None;
|
||||
let mut error_packages = Vec::new();
|
||||
@@ -784,7 +791,8 @@ pub fn install_package(name: &str, version: Option<&str>) -> Result<(LocalPackag
|
||||
.filter_map(|s| Some(format!("{}", s.host_str()?)))
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
let mut error_str = format!("Package {version_str} not found in registries {registries_searched:?}.");
|
||||
let mut error_str =
|
||||
format!("Package {version_str} not found in registries {registries_searched:?}.");
|
||||
let mut did_you_mean = error_packages
|
||||
.iter()
|
||||
.flat_map(|error| {
|
||||
@@ -809,8 +817,7 @@ pub fn install_package(name: &str, version: Option<&str>) -> Result<(LocalPackag
|
||||
format!("\r\n\r\nDid you mean:\r\n{}\r\n", did_you_mean.join("\r\n"))
|
||||
};
|
||||
|
||||
let (_, package_info) = url_of_package
|
||||
.ok_or(format!("{error_str}{did_you_mean}"))?;
|
||||
let (_, package_info) = url_of_package.ok_or(format!("{error_str}{did_you_mean}"))?;
|
||||
|
||||
let host = url::Url::parse(&package_info.registry)
|
||||
.map_err(|e| format!("invalid url: {}: {e}", package_info.registry))?
|
||||
@@ -818,8 +825,7 @@ pub fn install_package(name: &str, version: Option<&str>) -> Result<(LocalPackag
|
||||
.ok_or(format!("invalid url: {}", package_info.registry))?
|
||||
.to_string();
|
||||
|
||||
let dir = get_package_local_dir(
|
||||
&host, &package_info.package, &package_info.version)?;
|
||||
let dir = get_package_local_dir(&host, &package_info.package, &package_info.version)?;
|
||||
|
||||
let version = package_info.version;
|
||||
let name = package_info.package;
|
||||
@@ -854,13 +860,16 @@ pub fn install_package(name: &str, version: Option<&str>) -> Result<(LocalPackag
|
||||
"Cannot run {name}@{version}: module {module_name} not found in wapm.toml"
|
||||
))?;
|
||||
|
||||
Ok((LocalPackage {
|
||||
Ok((
|
||||
LocalPackage {
|
||||
registry: package_info.registry.clone(),
|
||||
name: wapm_toml.package.name.clone(),
|
||||
version: wapm_toml.package.version.to_string(),
|
||||
manifest: wapm_toml,
|
||||
path: target_path.clone(),
|
||||
}, target_path.join(&entrypoint_module.source)))
|
||||
},
|
||||
target_path.join(&entrypoint_module.source),
|
||||
))
|
||||
}
|
||||
|
||||
pub fn test_if_registry_present(registry: &str) -> Result<bool, String> {
|
||||
|
||||
Reference in New Issue
Block a user