mod args;
mod book_toml;
pub(crate) mod config;
pub(crate) mod links_commands;
pub(crate) mod markdown_commands;
pub(crate) mod refdefs_commands;
use args::*;
use clap::Args;
use clap::Parser;
use clap::Subcommand;
use links_commands::LinksSubCommand;
use markdown_commands::MarkdownSubCommand;
use refdefs_commands::RefDefsSubCommand;
pub(crate) fn parse_arguments() -> Cli {
Cli::parse()
}
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
pub(crate) struct Cli {
#[command(subcommand)]
pub(crate) command: Command,
#[clap(flatten)]
pub(crate) global_opts: GlobalOpts,
}
#[derive(Debug, Subcommand)]
pub(crate) enum Command {
#[command(subcommand, name = "refdefs")]
RefDefs(RefDefsSubCommand),
#[command(subcommand)]
Links(LinksSubCommand),
#[command(subcommand)]
Markdown(MarkdownSubCommand),
#[command(name = "sitemap")]
SiteMap(MarkdownSrcDirUrlAndDestFileArgs),
Debug(MarkdownSrcDirAndDestFileArgs),
#[allow(dead_code)]
#[command(skip)]
Test,
}
#[derive(Debug, Args, Default)]
pub(crate) struct GlobalOpts {
#[clap(long, short = 'y', global = true)]
pub(crate) yes: bool,
}
#[cfg(test)]
mod test {
}