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