use clap::Parser;
use crate::tool::Tool;
#[derive(Debug, Clone, Copy, PartialEq, Eq, clap::ValueEnum)]
#[clap(rename_all = "lowercase")]
pub enum OutputMode {
Print,
File,
}
#[derive(Debug, Parser)]
#[command(
name = "flarer",
author,
version,
about = "CLI for Cloudflare Browser Rendering",
long_about = None,
)]
pub struct Args {
#[arg(short, long)]
pub interactive: bool,
#[arg(short, long, required_unless_present = "interactive")]
pub url: Option<String>,
#[arg(short, long, value_enum, default_value_t = Tool::Markdown)]
pub tool: Tool,
#[arg(short, long, value_enum, default_value_t = OutputMode::Print)]
pub output: OutputMode,
#[arg(short, long)]
pub prompt: Option<String>,
#[arg(long)]
pub schema: Option<std::path::PathBuf>,
#[arg(long, env = "FLARER_OUTPUT_DIR")]
pub output_dir: Option<std::path::PathBuf>,
}