@@ -5,56 +5,30 @@ use std::path::PathBuf;
55
66use home:: env as home;
77
8- use super :: OSProcess ;
9- use super :: Process ;
10- #[ cfg( feature = "test" ) ]
11- use super :: { CurrentDirSource , TestProcess , VarSource } ;
8+ use super :: { CurrentDirSource , Process } ;
129
1310impl home:: Env for Process {
1411 fn home_dir ( & self ) -> Option < PathBuf > {
1512 match self {
16- Process :: OSProcess ( p ) => p . home_dir ( ) ,
13+ Process :: OSProcess ( _ ) => self . var ( "HOME" ) . ok ( ) . map ( |v| v . into ( ) ) ,
1714 #[ cfg( feature = "test" ) ]
18- Process :: TestProcess ( p ) => p . home_dir ( ) ,
15+ Process :: TestProcess ( _ ) => home :: OS_ENV . home_dir ( ) ,
1916 }
2017 }
18+
2119 fn current_dir ( & self ) -> Result < PathBuf , io:: Error > {
2220 match self {
23- Process :: OSProcess ( p ) => home :: Env :: current_dir ( p ) ,
21+ Process :: OSProcess ( _ ) => CurrentDirSource :: current_dir ( self ) ,
2422 #[ cfg( feature = "test" ) ]
25- Process :: TestProcess ( p ) => home:: Env :: current_dir ( p ) ,
23+ Process :: TestProcess ( _ ) => home:: OS_ENV . current_dir ( ) ,
2624 }
2725 }
26+
2827 fn var_os ( & self , key : & str ) -> Option < OsString > {
2928 match self {
30- Process :: OSProcess ( p ) => home :: Env :: var_os ( p , key) ,
29+ Process :: OSProcess ( _ ) => self . var_os ( key) ,
3130 #[ cfg( feature = "test" ) ]
32- Process :: TestProcess ( p ) => home :: Env :: var_os ( p , key) ,
31+ Process :: TestProcess ( _ ) => self . var_os ( key) ,
3332 }
3433 }
3534}
36-
37- #[ cfg( feature = "test" ) ]
38- impl home:: Env for TestProcess {
39- fn home_dir ( & self ) -> Option < PathBuf > {
40- self . var ( "HOME" ) . ok ( ) . map ( |v| v. into ( ) )
41- }
42- fn current_dir ( & self ) -> Result < PathBuf , io:: Error > {
43- CurrentDirSource :: current_dir ( self )
44- }
45- fn var_os ( & self , key : & str ) -> Option < OsString > {
46- VarSource :: var_os ( self , key)
47- }
48- }
49-
50- impl home:: Env for OSProcess {
51- fn home_dir ( & self ) -> Option < PathBuf > {
52- home:: OS_ENV . home_dir ( )
53- }
54- fn current_dir ( & self ) -> Result < PathBuf , io:: Error > {
55- home:: OS_ENV . current_dir ( )
56- }
57- fn var_os ( & self , key : & str ) -> Option < OsString > {
58- home:: OS_ENV . var_os ( key)
59- }
60- }
0 commit comments