File tree 3 files changed +10
-13
lines changed
3 files changed +10
-13
lines changed Original file line number Diff line number Diff line change @@ -7,7 +7,7 @@ use std::{
7
7
fs,
8
8
path:: { Path , PathBuf } ,
9
9
} ;
10
- use wasmtime_wasi:: { Dir , WasiCtxBuilder } ;
10
+ use wasmtime_wasi:: { ambient_authority , Dir , WasiCtxBuilder } ;
11
11
use wws_runtimes_manager:: metadata:: Runtime as RuntimeMetadata ;
12
12
use wws_store:: Store ;
13
13
@@ -90,10 +90,10 @@ impl Runtime for ExternalRuntime {
90
90
/// Mount the source code in the WASI context so it can be
91
91
/// processed by the engine
92
92
fn prepare_wasi_ctx ( & self , builder : WasiCtxBuilder ) -> Result < WasiCtxBuilder > {
93
- let source = fs :: File :: open ( & self . store . folder ) ?;
93
+ let dir = Dir :: open_ambient_dir ( & self . store . folder , ambient_authority ( ) ) ?;
94
94
95
95
Ok ( builder
96
- . preopened_dir ( Dir :: from_std_file ( source ) , "/src" ) ?
96
+ . preopened_dir ( dir , "/src" ) ?
97
97
. args ( & self . metadata . args ) ?)
98
98
}
99
99
Original file line number Diff line number Diff line change 3
3
4
4
use crate :: runtime:: Runtime ;
5
5
use anyhow:: Result ;
6
- use std:: path:: Path ;
7
- use std:: { fs, path:: PathBuf } ;
8
- use wasmtime_wasi:: Dir ;
9
- use wasmtime_wasi:: WasiCtxBuilder ;
6
+ use std:: path:: { Path , PathBuf } ;
7
+ use wasmtime_wasi:: { ambient_authority, Dir , WasiCtxBuilder } ;
10
8
use wws_store:: Store ;
11
9
12
10
static JS_ENGINE_WASM : & [ u8 ] =
@@ -48,8 +46,8 @@ impl Runtime for JavaScriptRuntime {
48
46
/// Mount the source code in the WASI context so it can be
49
47
/// processed by the engine
50
48
fn prepare_wasi_ctx ( & self , builder : WasiCtxBuilder ) -> Result < WasiCtxBuilder > {
51
- let source = fs :: File :: open ( & self . store . folder ) ?;
52
- Ok ( builder. preopened_dir ( Dir :: from_std_file ( source ) , "/src" ) ?)
49
+ let dir = Dir :: open_ambient_dir ( & self . store . folder , ambient_authority ( ) ) ?;
50
+ Ok ( builder. preopened_dir ( dir , "/src" ) ?)
53
51
}
54
52
55
53
/// Returns a reference to the Wasm module that should
Original file line number Diff line number Diff line change @@ -14,7 +14,7 @@ use std::path::PathBuf;
14
14
use std:: { collections:: HashMap , path:: Path } ;
15
15
use stdio:: Stdio ;
16
16
use wasmtime:: { Engine , Linker , Module , Store } ;
17
- use wasmtime_wasi:: { Dir , WasiCtxBuilder } ;
17
+ use wasmtime_wasi:: { ambient_authority , Dir , WasiCtxBuilder } ;
18
18
use wws_config:: Config as ProjectConfig ;
19
19
use wws_runtimes:: { init_runtime, Runtime } ;
20
20
@@ -106,9 +106,8 @@ impl Worker {
106
106
if let Some ( folders) = self . config . folders . as_ref ( ) {
107
107
for folder in folders {
108
108
if let Some ( base) = & self . path . parent ( ) {
109
- let source = fs:: File :: open ( base. join ( & folder. from ) ) ?;
110
- wasi_builder =
111
- wasi_builder. preopened_dir ( Dir :: from_std_file ( source) , & folder. to ) ?;
109
+ let dir = Dir :: open_ambient_dir ( base. join ( & folder. from ) , ambient_authority ( ) ) ?;
110
+ wasi_builder = wasi_builder. preopened_dir ( dir, & folder. to ) ?;
112
111
} else {
113
112
// TODO: Revisit error management on #73
114
113
return Err ( anyhow ! ( "The worker couldn't be initialized" ) ) ;
You can’t perform that action at this time.
0 commit comments