()
| 58 | |
| 59 | #[tokio::main] |
| 60 | pub async fn main() -> anyhow::Result<()> { |
| 61 | let cli = Cli::parse(); |
| 62 | |
| 63 | match &cli.command { |
| 64 | Some(Commands::Upload { name, path }) => { |
| 65 | let content = std::fs::read(path)?; |
| 66 | let coordinator = create_coordinator().await?; |
| 67 | |
| 68 | coordinator.upload_scenario(name.clone(), content).await??; |
| 69 | } |
| 70 | Some(Commands::Start { |
| 71 | name, |
| 72 | workers_number, |
| 73 | }) => { |
| 74 | let mut coordinator = create_coordinator().await?; |
| 75 | commands::start(&mut coordinator, name, workers_number).await?; |
| 76 | } |
| 77 | Some(Commands::Workers { command }) => match &command { |
| 78 | Some(WorkersCommands::List) => { |
| 79 | let coordinator = create_coordinator().await?; |
| 80 | let workers = coordinator.list_workers().await?; |
| 81 | println!( |
| 82 | "Available workers list:\n{}", |
| 83 | workers |
| 84 | .iter() |
| 85 | .map(|w| format!("\t{w}\n")) |
| 86 | .collect::<Vec<String>>() |
| 87 | .join("") |
| 88 | ); |
| 89 | } |
| 90 | None => {} |
| 91 | }, |
| 92 | Some(Commands::Run { path }) => { |
| 93 | commands::run(path) |
| 94 | .await |
| 95 | .expect("An error while running a scenario"); |
| 96 | } |
| 97 | None => {} |
| 98 | } |
| 99 | |
| 100 | Ok(()) |
| 101 | } |
nothing calls this directly
no test coverage detected