pitchfork_cli/cli/
mod.rs

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