From f752fa17bf35a58c62a25039d3d6561954ef82d4 Mon Sep 17 00:00:00 2001 From: Myrddin Dundragon Date: Wed, 24 Sep 2025 19:40:57 -0400 Subject: [PATCH] Created the loremaster. This is an application that uses tavern to create/publish a database from a blog repository. --- loremaster/Cargo.toml | 3 +++ loremaster/src/main.rs | 29 ++++++++++++++++++++++++----- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/loremaster/Cargo.toml b/loremaster/Cargo.toml index 968ae53..331a8e2 100644 --- a/loremaster/Cargo.toml +++ b/loremaster/Cargo.toml @@ -10,3 +10,6 @@ readme = "README.md" license = "Apache-2.0" [dependencies] +clap = { version = "4.5.46", features = ["derive"] } +tavern = { version = "0.2.4", path = "../tavern", registry = "cybermages", features = ["publisher"] } +tokio = { version = "1.47.1", features = ["rt-multi-thread", "macros"] } diff --git a/loremaster/src/main.rs b/loremaster/src/main.rs index d9dc854..8f0fc33 100644 --- a/loremaster/src/main.rs +++ b/loremaster/src/main.rs @@ -4,15 +4,34 @@ mod info; -/// Print the version. -fn print_version() +use clap::Parser; + +use tavern::{Database, Tavern}; + + + +#[derive(Parser)] +#[command(version, about)] +struct Options { - println!("{} v{}", info::get_name(), info::get_version()); + #[arg(short = 'c', long = "config", default_value = "Tavern.toml")] + config_file: std::path::PathBuf, + + #[arg(short = 'o', long = "output", default_value = "tavern.db")] + output: std::path::PathBuf } -fn main() +#[tokio::main] +async fn main() -> Result<(), Box> { - print_version(); + let options = Options::parse(); + + let tavern: Tavern = Tavern::from_config_file(&options.config_file); + + let database = Database::open(&options.output).await?; + database.insert_tavern(&tavern).await?; + + Ok(()) }