@@ -5,56 +5,30 @@ use std::path::PathBuf;
5
5
6
6
use home:: env as home;
7
7
8
- use super :: OSProcess ;
9
- use super :: Process ;
10
- #[ cfg( feature = "test" ) ]
11
- use super :: { CurrentDirSource , TestProcess , VarSource } ;
8
+ use super :: { CurrentDirSource , Process } ;
12
9
13
10
impl home:: Env for Process {
14
11
fn home_dir ( & self ) -> Option < PathBuf > {
15
12
match self {
16
- Process :: OSProcess ( p ) => p . home_dir ( ) ,
13
+ Process :: OSProcess ( _ ) => self . var ( "HOME" ) . ok ( ) . map ( |v| v . into ( ) ) ,
17
14
#[ cfg( feature = "test" ) ]
18
- Process :: TestProcess ( p ) => p . home_dir ( ) ,
15
+ Process :: TestProcess ( _ ) => home :: OS_ENV . home_dir ( ) ,
19
16
}
20
17
}
18
+
21
19
fn current_dir ( & self ) -> Result < PathBuf , io:: Error > {
22
20
match self {
23
- Process :: OSProcess ( p ) => home :: Env :: current_dir ( p ) ,
21
+ Process :: OSProcess ( _ ) => CurrentDirSource :: current_dir ( self ) ,
24
22
#[ cfg( feature = "test" ) ]
25
- Process :: TestProcess ( p ) => home:: Env :: current_dir ( p ) ,
23
+ Process :: TestProcess ( _ ) => home:: OS_ENV . current_dir ( ) ,
26
24
}
27
25
}
26
+
28
27
fn var_os ( & self , key : & str ) -> Option < OsString > {
29
28
match self {
30
- Process :: OSProcess ( p ) => home :: Env :: var_os ( p , key) ,
29
+ Process :: OSProcess ( _ ) => self . var_os ( key) ,
31
30
#[ cfg( feature = "test" ) ]
32
- Process :: TestProcess ( p ) => home :: Env :: var_os ( p , key) ,
31
+ Process :: TestProcess ( _ ) => self . var_os ( key) ,
33
32
}
34
33
}
35
34
}
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