diff --git a/build.rs b/build.rs index 04948c0d3..09b33fa91 100644 --- a/build.rs +++ b/build.rs @@ -38,14 +38,14 @@ pub fn main() { let mut mf = File::create(Path::new(&out_dir).join("uutils_map.rs")).unwrap(); mf.write_all( - "type UtilityMap = phf::Map<&'static str, (fn(T) -> i32, fn() -> Command)>;\n\ + "type UtilityMap = phf::OrderedMap<&'static str, (fn(T) -> i32, fn() -> Command)>;\n\ \n\ fn util_map() -> UtilityMap {\n" .as_bytes(), ) .unwrap(); - let mut phf_map = phf_codegen::Map::<&str>::new(); + let mut phf_map = phf_codegen::OrderedMap::<&str>::new(); for krate in &crates { let map_value = format!("({krate}::uumain, {krate}::uu_app)"); match krate.as_ref() { diff --git a/src/bin/coreutils.rs b/src/bin/coreutils.rs index 8440689c6..d6487dc49 100644 --- a/src/bin/coreutils.rs +++ b/src/bin/coreutils.rs @@ -212,8 +212,15 @@ fn gen_manpage( fn gen_coreutils_app(util_map: &UtilityMap) -> Command { let mut command = Command::new("coreutils"); - for (_, (_, sub_app)) in util_map { - command = command.subcommand(sub_app()); + for (name, (_, sub_app)) in util_map { + // Recreate a small subcommand with only the relevant info + // (name & short description) + let about = sub_app() + .get_about() + .expect("Could not get the 'about'") + .to_string(); + let sub_app = Command::new(name).about(about); + command = command.subcommand(sub_app); } command }