From 30d49d122cf70f1b6eca4bd4098bd9e3c169c7f0 Mon Sep 17 00:00:00 2001 From: Pat Hickey Date: Fri, 11 Dec 2020 16:38:44 -0800 Subject: [PATCH] add preopened_dir to builder --- crates/wasi-c2/Cargo.toml | 4 ++-- crates/wasi-c2/src/ctx.rs | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/crates/wasi-c2/Cargo.toml b/crates/wasi-c2/Cargo.toml index c2c59f7e7f..45ddc70609 100644 --- a/crates/wasi-c2/Cargo.toml +++ b/crates/wasi-c2/Cargo.toml @@ -26,8 +26,8 @@ getrandom = { version = "0.2.0", features = ["std"] } wiggle = { path = "../wiggle", default-features = false, version = "0.21.0" } tracing = "0.1.19" system-interface = "0.2" -cap-std = "0.7" -cap-fs-ext = "0.7" +cap-std = "0.8" +cap-fs-ext = "0.8" fs-set-times = "0.2.1" cfg-if = "1" diff --git a/crates/wasi-c2/src/ctx.rs b/crates/wasi-c2/src/ctx.rs index c8b2ef8434..6d5cee4a84 100644 --- a/crates/wasi-c2/src/ctx.rs +++ b/crates/wasi-c2/src/ctx.rs @@ -4,7 +4,7 @@ use crate::string_array::{StringArray, StringArrayError}; use crate::table::Table; use crate::Error; use std::cell::{RefCell, RefMut}; -use std::path::PathBuf; +use std::path::{Path, PathBuf}; use std::rc::Rc; pub struct WasiCtx { @@ -94,4 +94,19 @@ impl WasiCtxBuilder { ); self } + pub fn preopened_dir( + &mut self, + dir: Box, + path: impl AsRef, + ) -> Result<&mut Self, Error> { + let base_caps = DirCaps::OPEN; + let inheriting_caps = DirCaps::OPEN; + self.0.table().push(DirEntry { + base_caps, + inheriting_caps, + preopen_path: Some(path.as_ref().to_owned()), + dir, + })?; + Ok(self) + } }