Skip to content

Commit eb915d0

Browse files
committed
refactor: simplify command handling
1 parent 8397649 commit eb915d0

File tree

1 file changed

+22
-26
lines changed

1 file changed

+22
-26
lines changed

src/main.rs

+22-26
Original file line numberDiff line numberDiff line change
@@ -119,19 +119,31 @@ fn main() -> Result<()> {
119119

120120
// Handle subcommands
121121
match args.cmd {
122-
Commands::Enable => {
123-
confirm_or_exit(args.yes);
122+
Commands::Enable => enable(&system, selected, args.yes),
123+
Commands::Disable => disable(selected, args.yes),
124+
}
125+
}
124126

125-
info!("Updating apt package cache");
126-
system.update_package_lists()?;
127+
/// Enables selected experiments
128+
fn enable<'a>(system: &'a impl Worker, experiments: Vec<Experiment>, yes: bool) -> Result<()> {
129+
confirm_or_exit(yes);
127130

128-
enable(selected)
129-
}
130-
Commands::Disable => {
131-
confirm_or_exit(args.yes);
132-
disable(selected)
133-
}
131+
info!("Updating apt package cache");
132+
system.update_package_lists()?;
133+
134+
for e in experiments.iter() {
135+
e.enable()?;
136+
}
137+
Ok(())
138+
}
139+
140+
// Disable selected experiments
141+
fn disable(experiments: Vec<Experiment<'_>>, yes: bool) -> Result<()> {
142+
confirm_or_exit(yes);
143+
for e in experiments.iter() {
144+
e.disable()?;
134145
}
146+
Ok(())
135147
}
136148

137149
/// Get selected experiments from the command line arguments.
@@ -189,22 +201,6 @@ fn confirm_or_exit(yes: bool) {
189201
}
190202
}
191203

192-
/// Enables selected experiments
193-
fn enable(experiments: Vec<Experiment>) -> Result<()> {
194-
for e in experiments.iter() {
195-
e.enable()?;
196-
}
197-
Ok(())
198-
}
199-
200-
// Disable selected experiments
201-
fn disable(experiments: Vec<Experiment<'_>>) -> Result<()> {
202-
for e in experiments.iter() {
203-
e.disable()?;
204-
}
205-
Ok(())
206-
}
207-
208204
// Default experiments to enable if none are specified
209205
fn default_experiments() -> Vec<String> {
210206
let mut defaults = vec!["coreutils".to_string(), "sudo-rs".to_string()];

0 commit comments

Comments
 (0)