yeet
This commit is contained in:
58
src/main.rs
Normal file
58
src/main.rs
Normal file
@@ -0,0 +1,58 @@
|
||||
mod auth;
|
||||
mod config;
|
||||
mod markdown;
|
||||
mod models;
|
||||
mod server;
|
||||
mod wiki;
|
||||
|
||||
use anyhow::Result;
|
||||
use clap::Parser;
|
||||
use config::Config;
|
||||
use server::Server;
|
||||
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
|
||||
|
||||
#[derive(Parser)]
|
||||
#[command(author, version, about, long_about = None)]
|
||||
struct Cli {
|
||||
#[arg(short, long, default_value = "config.toml")]
|
||||
config: String,
|
||||
|
||||
#[arg(short, long, default_value = "3000")]
|
||||
port: u16,
|
||||
|
||||
#[arg(short, long)]
|
||||
wiki_path: Option<String>,
|
||||
|
||||
#[arg(long, help = "Generate static HTML files instead of running the server")]
|
||||
generate: bool,
|
||||
|
||||
#[arg(long, default_value = "output", help = "Output directory for generated HTML files")]
|
||||
output_dir: String,
|
||||
}
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<()> {
|
||||
tracing_subscriber::registry()
|
||||
.with(
|
||||
tracing_subscriber::EnvFilter::try_from_default_env()
|
||||
.unwrap_or_else(|_| "obswiki=debug,tower_http=debug".into()),
|
||||
)
|
||||
.with(tracing_subscriber::fmt::layer())
|
||||
.init();
|
||||
|
||||
let cli = Cli::parse();
|
||||
let config = Config::load(&cli.config).await?;
|
||||
|
||||
let wiki_path = cli.wiki_path.unwrap_or_else(|| "wiki".to_string());
|
||||
|
||||
if cli.generate {
|
||||
let generator = wiki::StaticGenerator::new(wiki_path, cli.output_dir);
|
||||
generator.generate().await?;
|
||||
println!("Static HTML files generated successfully!");
|
||||
} else {
|
||||
let server = Server::new(config, wiki_path, cli.port).await?;
|
||||
server.run().await?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user