@@ -34,9 +34,8 @@ pub(crate) fn entrypoint(args: &[&str]) -> Result<()> {
34
34
} ;
35
35
36
36
let rootdir = Dir :: open_ambient_dir ( "/" , cap_std:: ambient_authority ( ) ) ?;
37
- let conf_dir = common:: open_create_sysusers_dir ( & rootdir) ?;
38
37
for secondary_group in groups {
39
- generate_sysusers_fragment ( & conf_dir , username, secondary_group) ?;
38
+ generate_sysusers_fragment ( & rootdir , username, secondary_group) ?;
40
39
}
41
40
42
41
Ok ( ( ) )
@@ -73,14 +72,15 @@ fn cli_cmd() -> Command {
73
72
group
74
73
) ]
75
74
pub ( crate ) fn generate_sysusers_fragment (
76
- conf_dir : & Dir ,
75
+ rootdir : & Dir ,
77
76
username : & str ,
78
77
group : & str ,
79
78
) -> Result < bool > {
80
79
// The filename of the configuration fragment is in fact a public
81
80
// API, because users may have masked it in /etc. Do not change this.
82
81
let filename = format ! ( "40-rpmostree-pkg-usermod-{username}-{group}.conf" ) ;
83
82
83
+ let conf_dir = common:: open_create_sysusers_dir ( rootdir) ?;
84
84
if conf_dir. try_exists ( & filename) ? {
85
85
return Ok ( false ) ;
86
86
}
@@ -137,15 +137,14 @@ mod test {
137
137
#[ test]
138
138
fn test_fragment_generation ( ) {
139
139
let tmpdir = cap_tempfile:: tempdir ( cap_tempfile:: ambient_authority ( ) ) . unwrap ( ) ;
140
- let conf_dir = common:: open_create_sysusers_dir ( & tmpdir) . unwrap ( ) ;
141
140
142
141
let testcases = [
143
142
( "testuser" , "bar" , true ) ,
144
143
( "testuser" , "bar" , false ) ,
145
144
( "testuser" , "other" , true ) ,
146
145
] ;
147
146
for entry in testcases {
148
- let generated = generate_sysusers_fragment ( & conf_dir , entry. 0 , entry. 1 ) . unwrap ( ) ;
147
+ let generated = generate_sysusers_fragment ( & tmpdir , entry. 0 , entry. 1 ) . unwrap ( ) ;
149
148
assert_eq ! ( generated, entry. 2 , "{:?}" , entry) ;
150
149
151
150
let path = format ! (
0 commit comments