1pub mod args;
2pub mod verbs;
3
4use anyhow::Result;
5use args::{Cli, Verb};
6use tokio_util::sync::CancellationToken;
7
8pub fn run(cli: Cli) -> Result<()> {
9 let cancel = CancellationToken::new();
16 match cli.verb {
17 Verb::Init(a) => verbs::init::run(a, &cli.global, &cancel),
18 Verb::Add(a) => verbs::add::run(a, &cli.global, &cancel),
19 Verb::Rm(a) => verbs::rm::run(a, &cli.global, &cancel),
20 Verb::Ls(a) => verbs::ls::run(a, &cli.global, &cancel),
21 Verb::Status(a) => verbs::status::run(a, &cli.global, &cancel),
22 Verb::Sync(a) => verbs::sync::run(a, &cli.global, &cancel),
23 Verb::Update(a) => verbs::update::run(a, &cli.global, &cancel),
24 Verb::Doctor(a) => verbs::doctor::run(a, &cli.global, &cancel),
25 Verb::Serve(a) => verbs::serve::run(a, &cli.global, &cancel),
26 Verb::Import(a) => verbs::import::run(a, &cli.global, &cancel),
27 Verb::Run(a) => verbs::run::run(a, &cli.global, &cancel),
28 Verb::Exec(a) => verbs::exec::run(a, &cli.global, &cancel),
29 Verb::Teardown(a) => verbs::teardown::run(a, &cli.global, &cancel),
30 }
31}