Change:
currently supports , and a few others even though not so discoverable (). It would be good to let supports the aliases supported by , such as , and such. <!-- TRIAGEBOTSTART --<!-- TRIAGEBOTASSIGNSTART --This issue has been assigned to via . <!-- TRIAGEBOTASSIGNDATASTARTTRIAGEBOTASSIGNDATAEND --<!-- TRIAGEBOTASSIGNEND --<!-- TRIAGEBOTEND --
claim

Discussion:
Usage: x.py <subcommand> [options] [<paths>...] Subcommands: <del> build       Compile either the compiler or libraries check       Compile either the compiler or libraries, using cargo check </del> <ins> build, b    Compile either the compiler or libraries check, c    Compile either the compiler or libraries, using cargo check </ins> clippy      Run clippy (uses rustup/cargo-installed clippy binary) fix         Run cargo fix fmt         Run rustfmt <del> test        Build and run some test suites </del> <ins> test, t     Build and run some test suites </ins> bench       Build and run some benchmarks doc         Build documentation clean       Clean out build directories dist        Build distribution artifacts install     Install distribution artifacts <del> run         Run tools contained in this repository </del> <ins> run, r      Run tools contained in this repository </ins> To learn more about a subcommand, run `./x.py <subcommand> -h`", );

// there on out. let subcommand = args.iter().find(|&s| { (s == "build") <ins> || (s == "b") </ins> || (s == "check") <ins> || (s == "c") </ins> || (s == "clippy") || (s == "fix") || (s == "fmt") || (s == "test") <ins> || (s == "t") </ins> || (s == "bench") || (s == "doc") || (s == "clean") || (s == "dist") || (s == "install") || (s == "run") <ins> || (s == "r") </ins> }); let subcommand = match subcommand { Some(s) => s,

// Some subcommands get extra options match subcommand.as_str() { <del> "test" => { </del> <ins> "test" | "t" => { </ins> opts.optflag("", "no-fail-fast", "Run all tests regardless of failure"); opts.optmulti("", "test-args", "extra arguments", "ARGS"); opts.optmulti(

} // Extra help text for some commands match subcommand.as_str() { <del> "build" => { </del> <ins> "build" | "b" => { </ins> subcommand_help.push_str( "n Arguments:

Once this is done, build/$ARCH/stage1 contains a usable compiler.", ); } <del> "check" => { </del> <ins> "check" | "c" => { </ins> subcommand_help.push_str( "n Arguments:

./x.py fmt --check", ); } <del> "test" => { </del> <ins> "test" | "t" => { </ins> subcommand_help.push_str( "n Arguments:

./x.py doc --stage 1", ); } <del> "run" => { </del> <ins> "run" | "r" => { </ins> subcommand_help.push_str( "n Arguments:

} let cmd = match subcommand.as_str() { <del> "build" => Subcommand::Build { paths }, "check" => Subcommand::Check { paths }, </del> <ins> "build" | "b" => Subcommand::Build { paths }, "check" | "c" => Subcommand::Check { paths }, </ins> "clippy" => Subcommand::Clippy { paths }, "fix" => Subcommand::Fix { paths }, <del> "test" => Subcommand::Test { </del> <ins> "test" | "t" => Subcommand::Test { </ins> paths, bless: matches.opt_present("bless"), compare_mode: matches.opt_str("compare-mode"),

"fmt" => Subcommand::Format { check: matches.opt_present("check") }, "dist" => Subcommand::Dist { paths }, "install" => Subcommand::Install { paths }, <del> "run" => { </del> <ins> "run" | "r" => { </ins> if paths.is_empty() { println!("nrun requires at least a path!n"); usage(1, &opts, &subcommand_help, &extra_help);