File tree 2 files changed +35
-2
lines changed
2 files changed +35
-2
lines changed Original file line number Diff line number Diff line change @@ -66,14 +66,26 @@ impl Source {
66
66
use Source :: * ;
67
67
match self {
68
68
GitInstallation => {
69
- if env_var ( "GIT_CONFIG_NOSYSTEM" ) . is_some ( ) {
69
+ if env_var ( "GIT_CONFIG_NOSYSTEM" )
70
+ . map ( crate :: Boolean :: try_from)
71
+ . transpose ( )
72
+ . ok ( )
73
+ . flatten ( )
74
+ . map_or ( false , |b| b. 0 )
75
+ {
70
76
None
71
77
} else {
72
78
gix_path:: env:: installation_config ( ) . map ( Into :: into)
73
79
}
74
80
}
75
81
System => {
76
- if env_var ( "GIT_CONFIG_NOSYSTEM" ) . is_some ( ) {
82
+ if env_var ( "GIT_CONFIG_NOSYSTEM" )
83
+ . map ( crate :: Boolean :: try_from)
84
+ . transpose ( )
85
+ . ok ( )
86
+ . flatten ( )
87
+ . map_or ( false , |b| b. 0 )
88
+ {
77
89
None
78
90
} else {
79
91
env_var ( "GIT_CONFIG_SYSTEM" )
Original file line number Diff line number Diff line change @@ -13,6 +13,18 @@ fn git_config_no_system() {
13
13
} ) ,
14
14
None
15
15
) ;
16
+ assert ! (
17
+ Source :: GitInstallation
18
+ . storage_location( & mut |name| {
19
+ assert_eq!(
20
+ name, "GIT_CONFIG_NOSYSTEM" ,
21
+ "it only checks this var, and if set, nothing else"
22
+ ) ;
23
+ Some ( "false" . into( ) )
24
+ } )
25
+ . is_some( ) ,
26
+ "it treats the variable as boolean"
27
+ ) ;
16
28
assert_eq ! (
17
29
Source :: System . storage_location( & mut |name| {
18
30
assert_eq!(
@@ -23,6 +35,15 @@ fn git_config_no_system() {
23
35
} ) ,
24
36
None
25
37
) ;
38
+ assert ! ( Source :: System
39
+ . storage_location( & mut |name| {
40
+ match name {
41
+ "GIT_CONFIG_NOSYSTEM" => Some ( "false" . into( ) ) ,
42
+ "GIT_CONFIG_SYSTEM" => None ,
43
+ _ => unreachable!( "known set" ) ,
44
+ }
45
+ } )
46
+ . is_some( ) , ) ;
26
47
}
27
48
28
49
#[ test]
You can’t perform that action at this time.
0 commit comments