mod cmd;
mod io;
use anyhow::Result;
use clap::{Parser, Subcommand};
#[derive(Debug, Parser)]
#[command(
author,
version,
about = "Manage Gordian Club editions",
propagate_version = true,
styles = clap::builder::Styles::styled()
)]
struct Cli {
#[command(subcommand)]
command: Command,
}
#[derive(Debug, Subcommand)]
enum Command {
Init(cmd::init::CommandArgs),
Edition(cmd::edition::CommandArgs),
Permits(cmd::permits::CommandArgs),
Content(cmd::content::CommandArgs),
}
fn main() -> Result<()> {
provenance_mark::register_tags();
let cli = Cli::parse();
match cli.command {
Command::Init(args) => cmd::init::exec(args),
Command::Edition(args) => cmd::edition::exec(args),
Command::Permits(args) => cmd::permits::exec(args),
Command::Content(args) => cmd::content::exec(args),
}
}