1mod ci;
2mod cli;
3mod targets;
4
5use ci::TokioCIStep;
6use cli::CargoTokio;
7
8use structopt::StructOpt;
9
10use std::io;
11
12pub fn run() -> io::Result<()> {
13 let cli = CargoTokio::from_args();
14
15 match cli.step() {
16 Some("test") => TokioCIStep::test_tokio_full(),
17 Some("test-unstable") => TokioCIStep::test_tokio_full_unstable(),
18 Some("miri") => TokioCIStep::miri(),
19 Some("san") => TokioCIStep::san(),
20 Some("cross") => TokioCIStep::cross(),
21 Some("features") => TokioCIStep::features(),
22 Some("minrust") => TokioCIStep::minrust(),
23 Some("fmt") => TokioCIStep::fmt(),
24 Some("clippy") => TokioCIStep::clippy(),
25 Some("docs") => TokioCIStep::docs(),
26 Some("loom") => TokioCIStep::loom(),
27 None => ci::run_all_steps(),
28 _ => Err(std::io::ErrorKind::InvalidInput.into()),
29 }
30}