mod create;
mod delete;
mod edit;
mod list;
mod share;
mod usage;
mod view;
use self::create::ProjectsCreateArgs;
use self::delete::ProjectsDeleteArgs;
use self::edit::ProjectsEditArgs;
use self::list::ProjectsListArgs;
use self::share::ProjectsShareArgs;
use self::usage::ProjectsUsageCommands;
use self::view::ProjectsViewArgs;
use clap::{Parser, Subcommand};
#[derive(Parser, Debug)]
pub struct ProjectsCli {
#[clap(subcommand)]
commands: ProjectsCommands,
}
#[derive(Subcommand, Debug)]
#[clap(about = "Manage projects")]
enum ProjectsCommands {
#[clap(about = "Create a new project")]
Create(ProjectsCreateArgs),
#[clap(about = "Delete a project")]
Delete(ProjectsDeleteArgs),
#[clap(about = "Edit a project")]
Edit(ProjectsEditArgs),
#[clap(about = "List all projects")]
List(ProjectsListArgs),
#[clap(about = "Share a project")]
Share(ProjectsShareArgs),
#[clap(about = "View a project usage")]
Usage(ProjectsUsageCommands),
#[clap(about = "View a project details")]
View(ProjectsViewArgs),
}
pub fn match_command(input: &ProjectsCli) {
match &input.commands {
ProjectsCommands::Create(args) => create::create(&args),
ProjectsCommands::Delete(args) => delete::delete(&args),
ProjectsCommands::Edit(args) => edit::edit(&args),
ProjectsCommands::List(args) => list::list(&args),
ProjectsCommands::Share(args) => share::share(&args),
ProjectsCommands::Usage(args) => usage::usage_commands(&args),
ProjectsCommands::View(args) => view::view(&args),
}
}