pitchfork_cli/cli/
mod.rs

1use crate::Result;
2use clap::Parser;
3
4mod activate;
5mod cd;
6mod clean;
7mod completion;
8mod config;
9mod disable;
10mod enable;
11mod list;
12mod logs;
13mod run;
14mod start;
15mod status;
16mod stop;
17mod supervisor;
18mod usage;
19mod wait;
20
21#[derive(Debug, clap::Parser)]
22#[clap(name = "pitchfork", version = env!("CARGO_PKG_VERSION"), about = env!("CARGO_PKG_DESCRIPTION"))]
23struct Cli {
24    #[clap(subcommand)]
25    command: Commands,
26}
27
28#[derive(Debug, clap::Subcommand)]
29enum Commands {
30    Activate(activate::Activate),
31    Cd(cd::Cd),
32    Clean(clean::Clean),
33    Config(config::Config),
34    Completion(completion::Completion),
35    Disable(disable::Disable),
36    Enable(enable::Enable),
37    List(list::List),
38    Logs(logs::Logs),
39    Run(run::Run),
40    Start(start::Start),
41    Status(status::Status),
42    Stop(stop::Stop),
43    Supervisor(supervisor::Supervisor),
44    Usage(usage::Usage),
45    Wait(wait::Wait),
46}
47
48pub async fn run() -> Result<()> {
49    let args = Cli::parse();
50    match args.command {
51        Commands::Activate(activate) => activate.run().await,
52        Commands::Cd(cd) => cd.run().await,
53        Commands::Clean(clean) => clean.run().await,
54        Commands::Config(config) => config.run().await,
55        Commands::Completion(completion) => completion.run().await,
56        Commands::Disable(disable) => disable.run().await,
57        Commands::Enable(enable) => enable.run().await,
58        Commands::List(list) => list.run().await,
59        Commands::Logs(logs) => logs.run().await,
60        Commands::Run(run) => run.run().await,
61        Commands::Start(start) => start.run().await,
62        Commands::Status(status) => status.run().await,
63        Commands::Stop(stop) => stop.run().await,
64        Commands::Supervisor(supervisor) => supervisor.run().await,
65        Commands::Usage(usage) => usage.run().await,
66        Commands::Wait(wait) => wait.run().await,
67    }
68}