mod commands;
mod config;
mod input;
use anyhow::Result;
use clap::{Parser, Subcommand};
#[derive(Subcommand)]
enum CommandLine {
#[clap(name = "convert-to")]
ConvertTo(crate::commands::ConvertTo),
Format(crate::commands::Format),
}
#[derive(Parser)]
#[command(author, version, about, long_about = None)]
struct Application {
#[clap(subcommand)]
command: CommandLine,
}
impl Application {
fn run_command(&self) -> Result<()> {
match &self.command {
CommandLine::ConvertTo(convert_to) => convert_to.run(),
CommandLine::Format(format) => format.run(),
}
}
pub fn run(&self) {
if let Err(err) = self.run_command() {
eprintln!("Failed with error: {err:#}");
std::process::exit(1);
}
}
}
fn main() {
Application::parse().run();
}