use std::path::PathBuf;
use clap::Parser;
#[derive(Parser, Debug)]
struct Cli {
path: PathBuf,
#[clap(short, long)]
meta: bool,
#[clap(short, long)]
schema: bool,
#[clap(short, long)]
no_fmt: bool,
#[clap(short, long)]
pretty: bool,
#[clap(long = "sep", default_value = "\n")]
batch_sep: String,
#[clap(short, long = "log")]
log_level: Option<tracing::Level>,
}
fn main() -> anyhow::Result<()> {
human_panic_setup();
let cli = Cli::parse();
let opt = find_sqlite::Options {
show_metadata: cli.meta,
show_schema: cli.schema,
batch_separator: cli.batch_sep.to_string(),
format_sql: !cli.no_fmt,
format_sql_pretty: cli.pretty,
};
find_sqlite::tracing_init(cli.log_level)?;
find_sqlite::run(&cli.path, opt);
Ok(())
}
fn human_panic_setup() {
macro_rules! repo {
() => {
env!("CARGO_PKG_REPOSITORY")
};
}
human_panic::setup_panic!(human_panic::Metadata::new(
env!("CARGO_PKG_NAME"),
env!("CARGO_PKG_VERSION")
)
.authors(env!("CARGO_PKG_AUTHORS"))
.homepage(repo!())
.support(concat!("- Submit an issue at ", repo!(), "/issues")));
}