summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTerts Diepraam <terts.diepraam@gmail.com>2024-04-18 09:26:39 +0200
committerSylvestre Ledru <sylvestre@debian.org>2024-04-30 17:26:02 +0200
commitb1ba2495286ce78f28b848897f0ab259bfa7740a (patch)
tree637de587c68702a5b711656a9858d5afadbed395
parent1162c53f5626a10c33fa3cc0cc4b71a7aa51bcff (diff)
multicall: add --list to list all utils
-rw-r--r--src/bin/coreutils.rs21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/bin/coreutils.rs b/src/bin/coreutils.rs
index fc2cd16ad..6edb70821 100644
--- a/src/bin/coreutils.rs
+++ b/src/bin/coreutils.rs
@@ -90,13 +90,20 @@ fn main() {
None => not_found(&util_os),
};
- if util == "completion" {
- gen_completions(args, &utils);
- }
-
- if util == "manpage" {
- gen_manpage(args, &utils);
- }
+ match util {
+ "completion" => gen_completions(args, &utils),
+ "manpage" => gen_manpage(args, &utils),
+ "--list" => {
+ let mut utils: Vec<_> = utils.keys().collect();
+ utils.sort();
+ for util in utils {
+ println!("{util}");
+ }
+ process::exit(0);
+ }
+ // Not a special command: fallthrough to calling a util
+ _ => {}
+ };
match utils.get(util) {
Some(&(uumain, _)) => {