@@ -38,7 +38,7 @@ use experiments::{all_experiments, Experiment};
38
38
use inquire:: Confirm ;
39
39
use tracing:: { info, warn} ;
40
40
use tracing_subscriber:: { fmt, prelude:: * } ;
41
- use utils:: { System , Worker } ;
41
+ use utils:: { vecs_eq , System , Worker } ;
42
42
43
43
/// A command-line utility to install modern Rust-based replacements of essential
44
44
/// packages such as coreutils, findutils, diffutils and sudo and make them the
@@ -115,7 +115,7 @@ fn main() -> Result<()> {
115
115
) ;
116
116
117
117
// Get selected experiments from the command line arguments
118
- let selected = get_selected_experiments ( args. all , args. experiments . clone ( ) , & system) ;
118
+ let selected = selected_experiments ( args. all , args. experiments . clone ( ) , & system) ;
119
119
120
120
// Handle subcommands
121
121
match args. cmd {
@@ -135,26 +135,23 @@ fn main() -> Result<()> {
135
135
}
136
136
137
137
/// Get selected experiments from the command line arguments.
138
- fn get_selected_experiments < ' a > (
138
+ fn selected_experiments < ' a > (
139
139
all : bool ,
140
140
selected : Vec < String > ,
141
141
system : & ' a impl Worker ,
142
142
) -> Vec < Experiment < ' a > > {
143
143
let all_experiments = all_experiments ( system) ;
144
+ let default_experiments = default_experiments ( ) ;
144
145
145
146
match all {
146
147
true => {
147
- let mut selected = selected. clone ( ) ;
148
- selected. sort ( ) ;
149
- if selected. len ( ) > 0 && selected != default_experiments ( ) {
148
+ if selected. len ( ) > 0 && !vecs_eq ( selected, default_experiments) {
150
149
warn ! ( "Ignoring --experiments flag as --all is set" ) ;
151
150
}
152
151
153
152
all_experiments
154
153
}
155
154
false => {
156
- let default_experiments = vec ! [ "coreutils" . to_string( ) , "sudo-rs" . to_string( ) ] ;
157
-
158
155
// If no experiments are selected, default to coreutils and sudo-rs
159
156
let filter = match selected. len ( ) {
160
157
0 => default_experiments,
0 commit comments