@@ -22,11 +22,10 @@ use shared_child::SharedChild;
2222
2323use std:: {
2424 collections:: HashMap ,
25- env:: set_var,
26- env:: var,
25+ env:: { set_var, temp_dir} ,
2726 ffi:: OsString ,
2827 fmt:: Write ,
29- fs:: { create_dir_all, remove_dir_all} ,
28+ fs:: { create_dir_all, read_to_string , remove_dir_all, write } ,
3029 net:: SocketAddr ,
3130 path:: PathBuf ,
3231 process:: ExitStatus ,
@@ -196,8 +195,8 @@ fn env() -> Result<Env, EnvError> {
196195
197196/// Writes CLI options to be used later on the Xcode and Android Studio build commands
198197pub fn write_options (
198+ identifier : & str ,
199199 mut options : CliOptions ,
200- env : & mut Env ,
201200) -> crate :: Result < ( Runtime , ServerHandle ) > {
202201 options. vars . extend ( env_vars ( ) ) ;
203202
@@ -215,20 +214,24 @@ pub fn write_options(
215214 } ) ;
216215 let ( handle, addr) = r?;
217216
218- env. insert_env_var ( "TAURI_OPTIONS_SERVER_ADDR" . into ( ) , addr. to_string ( ) . into ( ) ) ;
217+ write (
218+ temp_dir ( ) . join ( format ! ( "{identifier}-server-addr" ) ) ,
219+ addr. to_string ( ) ,
220+ ) ?;
219221
220222 Ok ( ( runtime, handle) )
221223}
222224
223- fn read_options ( ) -> CliOptions {
225+ fn read_options ( identifier : & str ) -> CliOptions {
224226 let runtime = tokio:: runtime:: Runtime :: new ( ) . unwrap ( ) ;
225227 let options = runtime
226228 . block_on ( async move {
227229 let ( tx, rx) = WsTransportClientBuilder :: default ( )
228230 . build (
229231 format ! (
230232 "ws://{}" ,
231- var( "TAURI_OPTIONS_SERVER_ADDR" ) . expect( "missing addr environment variable" )
233+ read_to_string( temp_dir( ) . join( format!( "{identifier}-server-addr" ) ) )
234+ . expect( "missing addr file" )
232235 )
233236 . parse ( )
234237 . unwrap ( ) ,
0 commit comments