pub mod bump;
pub mod get;
pub mod set;
use crate::Project;
use clap::Parser;
use rattler_conda_types::VersionBumpType;
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(get::Args),
Set(set::Args),
Major,
Minor,
Patch,
}
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(args) => get::execute(project, args).await?,
Command::Set(args) => set::execute(project, args).await?,
Command::Major => bump::execute(project, VersionBumpType::Major).await?,
Command::Minor => bump::execute(project, VersionBumpType::Minor).await?,
Command::Patch => bump::execute(project, VersionBumpType::Patch).await?,
}
Ok(())
}