11use  r_efi:: protocols:: { simple_text_input,  simple_text_output} ; 
22
3+ use  super :: env:: { CommandEnv ,  CommandEnvs } ; 
34use  crate :: collections:: BTreeMap ; 
45pub  use  crate :: ffi:: OsString  as  EnvKey ; 
56use  crate :: ffi:: { OsStr ,  OsString } ; 
@@ -10,7 +11,6 @@ use crate::sys::pal::helpers;
1011use  crate :: sys:: pal:: os:: error_string; 
1112use  crate :: sys:: pipe:: AnonPipe ; 
1213use  crate :: sys:: unsupported; 
13- use  crate :: sys_common:: process:: { CommandEnv ,  CommandEnvs } ; 
1414use  crate :: { fmt,  io} ; 
1515
1616//////////////////////////////////////////////////////////////////////////////// 
@@ -139,72 +139,72 @@ impl Command {
139139            Stdio :: MakePipe  => unsupported ( ) , 
140140        } 
141141    } 
142+ } 
142143
143-     pub  fn  output ( & mut  self )  -> io:: Result < ( ExitStatus ,  Vec < u8 > ,  Vec < u8 > ) >  { 
144-         let  mut  cmd = uefi_command_internal:: Image :: load_image ( & self . prog ) ?; 
145- 
146-         // UEFI adds the bin name by default 
147-         if  !self . args . is_empty ( )  { 
148-             let  args = uefi_command_internal:: create_args ( & self . prog ,  & self . args ) ; 
149-             cmd. set_args ( args) ; 
150-         } 
151- 
152-         // Setup Stdout 
153-         let  stdout = self . stdout . unwrap_or ( Stdio :: MakePipe ) ; 
154-         let  stdout = Self :: create_pipe ( stdout) ?; 
155-         if  let  Some ( con)  = stdout { 
156-             cmd. stdout_init ( con) 
157-         }  else  { 
158-             cmd. stdout_inherit ( ) 
159-         } ; 
160- 
161-         // Setup Stderr 
162-         let  stderr = self . stderr . unwrap_or ( Stdio :: MakePipe ) ; 
163-         let  stderr = Self :: create_pipe ( stderr) ?; 
164-         if  let  Some ( con)  = stderr { 
165-             cmd. stderr_init ( con) 
166-         }  else  { 
167-             cmd. stderr_inherit ( ) 
168-         } ; 
169- 
170-         // Setup Stdin 
171-         let  stdin = self . stdin . unwrap_or ( Stdio :: Null ) ; 
172-         let  stdin = Self :: create_stdin ( stdin) ?; 
173-         if  let  Some ( con)  = stdin { 
174-             cmd. stdin_init ( con) 
175-         }  else  { 
176-             cmd. stdin_inherit ( ) 
177-         } ; 
178- 
179-         let  env = env_changes ( & self . env ) ; 
180- 
181-         // Set any new vars 
182-         if  let  Some ( e)  = & env { 
183-             for  ( k,  ( _,  v) )  in  e { 
184-                 match  v { 
185-                     Some ( v)  => unsafe  {  crate :: env:: set_var ( k,  v)  } , 
186-                     None  => unsafe  {  crate :: env:: remove_var ( k)  } , 
187-                 } 
144+ pub  fn  output ( command :  & mut  Command )  -> io:: Result < ( ExitStatus ,  Vec < u8 > ,  Vec < u8 > ) >  { 
145+     let  mut  cmd = uefi_command_internal:: Image :: load_image ( & command. prog ) ?; 
146+ 
147+     // UEFI adds the bin name by default 
148+     if  !command. args . is_empty ( )  { 
149+         let  args = uefi_command_internal:: create_args ( & command. prog ,  & command. args ) ; 
150+         cmd. set_args ( args) ; 
151+     } 
152+ 
153+     // Setup Stdout 
154+     let  stdout = command. stdout . unwrap_or ( Stdio :: MakePipe ) ; 
155+     let  stdout = Command :: create_pipe ( stdout) ?; 
156+     if  let  Some ( con)  = stdout { 
157+         cmd. stdout_init ( con) 
158+     }  else  { 
159+         cmd. stdout_inherit ( ) 
160+     } ; 
161+ 
162+     // Setup Stderr 
163+     let  stderr = command. stderr . unwrap_or ( Stdio :: MakePipe ) ; 
164+     let  stderr = Command :: create_pipe ( stderr) ?; 
165+     if  let  Some ( con)  = stderr { 
166+         cmd. stderr_init ( con) 
167+     }  else  { 
168+         cmd. stderr_inherit ( ) 
169+     } ; 
170+ 
171+     // Setup Stdin 
172+     let  stdin = command. stdin . unwrap_or ( Stdio :: Null ) ; 
173+     let  stdin = Command :: create_stdin ( stdin) ?; 
174+     if  let  Some ( con)  = stdin { 
175+         cmd. stdin_init ( con) 
176+     }  else  { 
177+         cmd. stdin_inherit ( ) 
178+     } ; 
179+ 
180+     let  env = env_changes ( & command. env ) ; 
181+ 
182+     // Set any new vars 
183+     if  let  Some ( e)  = & env { 
184+         for  ( k,  ( _,  v) )  in  e { 
185+             match  v { 
186+                 Some ( v)  => unsafe  {  crate :: env:: set_var ( k,  v)  } , 
187+                 None  => unsafe  {  crate :: env:: remove_var ( k)  } , 
188188            } 
189189        } 
190+     } 
190191
191-          let  stat = cmd. start_image ( ) ?; 
192+     let  stat = cmd. start_image ( ) ?; 
192193
193-         // Rollback any env changes 
194-         if  let  Some ( e)  = env { 
195-             for  ( k,  ( v,  _) )  in  e { 
196-                 match  v { 
197-                     Some ( v)  => unsafe  {  crate :: env:: set_var ( k,  v)  } , 
198-                     None  => unsafe  {  crate :: env:: remove_var ( k)  } , 
199-                 } 
194+     // Rollback any env changes 
195+     if  let  Some ( e)  = env { 
196+         for  ( k,  ( v,  _) )  in  e { 
197+             match  v { 
198+                 Some ( v)  => unsafe  {  crate :: env:: set_var ( k,  v)  } , 
199+                 None  => unsafe  {  crate :: env:: remove_var ( k)  } , 
200200            } 
201201        } 
202+     } 
202203
203-          let  stdout = cmd. stdout ( ) ?; 
204-          let  stderr = cmd. stderr ( ) ?; 
204+     let  stdout = cmd. stdout ( ) ?; 
205+     let  stderr = cmd. stderr ( ) ?; 
205206
206-         Ok ( ( ExitStatus ( stat) ,  stdout,  stderr) ) 
207-     } 
207+     Ok ( ( ExitStatus ( stat) ,  stdout,  stderr) ) 
208208} 
209209
210210impl  From < AnonPipe >  for  Stdio  { 
0 commit comments