//! Dispatch the bundled uutils commands by argv[0], or as coreutils . fn main() { let argv: Vec<_> = std::env::args_os().collect(); let invoked = std::path::Path::new(&argv[0]).file_stem().unwrap(); let second = invoked == "coreutils"; if second { if argv.len() < 2 { eprintln!("Usage: coreutils [arguments...]"); std::process::exit(2); } uucore::set_utility_is_second_arg(); } let name = uucore::util_name(); let name = name.strip_suffix(".wasm").unwrap_or(name); let locale = match name { "dir" | "vdir" => "ls", _ => name, }; uucore::locale::setup_localization(locale).expect("utility supplies localization"); let args = uucore::args_os().skip(usize::from(second)); let code = match name { "arch" => uu_arch::uumain(args), "b2sum" => uu_b2sum::uumain(args), "base32" => uu_base32::uumain(args), "base64" => uu_base64::uumain(args), "basename" => uu_basename::uumain(args), "basenc" => uu_basenc::uumain(args), "cat" => uu_cat::uumain(args), "cksum" => uu_cksum::uumain(args), "comm" => uu_comm::uumain(args), "cp" => uu_cp::uumain(args), "csplit" => uu_csplit::uumain(args), "cut" => uu_cut::uumain(args), "date" => uu_date::uumain(args), "dd" => uu_dd::uumain(args), "dir" => uu_dir::uumain(args), "dircolors" => uu_dircolors::uumain(args), "dirname" => uu_dirname::uumain(args), "echo" => uu_echo::uumain(args), "expand" => uu_expand::uumain(args), "expr" => uu_expr::uumain(args), "factor" => uu_factor::uumain(args), "false" => uu_false::uumain(args), "fmt" => uu_fmt::uumain(args), "fold" => uu_fold::uumain(args), "head" => uu_head::uumain(args), "hostid" => uu_hostid::uumain(args), "join" => uu_join::uumain(args), "link" => uu_link::uumain(args), "ln" => uu_ln::uumain(args), "ls" => uu_ls::uumain(args), "md5sum" => uu_md5sum::uumain(args), "mkdir" => uu_mkdir::uumain(args), "mktemp" => uu_mktemp::uumain(args), "mv" => uu_mv::uumain(args), "nice" => uu_nice::uumain(args), "nl" => uu_nl::uumain(args), "nproc" => uu_nproc::uumain(args), "numfmt" => uu_numfmt::uumain(args), "od" => uu_od::uumain(args), "paste" => uu_paste::uumain(args), "pathchk" => uu_pathchk::uumain(args), "pr" => uu_pr::uumain(args), "printenv" => uu_printenv::uumain(args), "printf" => uu_printf::uumain(args), "ptx" => uu_ptx::uumain(args), "pwd" => uu_pwd::uumain(args), "readlink" => uu_readlink::uumain(args), "realpath" => uu_realpath::uumain(args), "rm" => uu_rm::uumain(args), "rmdir" => uu_rmdir::uumain(args), "seq" => uu_seq::uumain(args), "sha1sum" => uu_sha1sum::uumain(args), "sha224sum" => uu_sha224sum::uumain(args), "sha256sum" => uu_sha256sum::uumain(args), "sha384sum" => uu_sha384sum::uumain(args), "sha512sum" => uu_sha512sum::uumain(args), "shred" => uu_shred::uumain(args), "shuf" => uu_shuf::uumain(args), "sleep" => uu_sleep::uumain(args), "sort" => uu_sort::uumain(args), "split" => uu_split::uumain(args), "sum" => uu_sum::uumain(args), "tail" => uu_tail::uumain(args), "tee" => uu_tee::uumain(args), "test" => uu_test::uumain(args), "touch" => uu_touch::uumain(args), "tr" => uu_tr::uumain(args), "true" => uu_true::uumain(args), "truncate" => uu_truncate::uumain(args), "tsort" => uu_tsort::uumain(args), "tty" => uu_tty::uumain(args), "uname" => uu_uname::uumain(args), "unexpand" => uu_unexpand::uumain(args), "uniq" => uu_uniq::uumain(args), "unlink" => uu_unlink::uumain(args), "vdir" => uu_vdir::uumain(args), "wc" => uu_wc::uumain(args), "yes" => uu_yes::uumain(args), _ => { eprintln!("coreutils: unknown utility: {name}"); 127 } }; std::process::exit(code); }