pub mod get;
pub mod set;
use crate::Project;
use clap::Parser;
use std::path::PathBuf;
#[derive(Parser, Debug)]
pub struct Args {
#[clap(long, global = true)]
pub manifest_path: Option<PathBuf>,
#[clap(subcommand)]
pub command: Command,
}
#[derive(Parser, Debug)]
pub enum Command {
Get,
Set(set::Args),
}
pub async fn execute(args: Args) -> miette::Result<()> {
let project = Project::load_or_else_discover(args.manifest_path.as_deref())?;
match args.command {
Command::Get => get::execute(project).await?,
Command::Set(args) => set::execute(project, args).await?,
}
Ok(())
}