mod command;
use clap::{Parser, Subcommand};
use eighty::Error;
use std::path::Path;
#[derive(Debug, Parser)]
#[command(name = "eighty")]
#[command(about = "Static website generator, mainly for the Core Paper project.")]
struct Cli {
#[command(subcommand)]
command: Command,
}
#[derive(Debug, Subcommand)]
enum Command {
Build {
site: String,
target: String,
},
BuildAll {
root: String,
target: String,
},
Serve {
site: String,
},
}
fn main() -> Result<(), Error> {
tracing_subscriber::fmt::init();
let args = Cli::parse();
match args.command {
Command::Build { site, target } => {
let site_path = Path::new(&site);
let target_path = Path::new(&target);
command::build::build(&site_path, &target_path)?;
}
Command::BuildAll { root, target } => {
let root_path = Path::new(&root);
let target_path = Path::new(&target);
command::build::build_all(&root_path, &target_path)?;
}
Command::Serve { site } => {
let site_path = Path::new(&site);
command::serve::serve(&site_path)?;
}
}
Ok(())
}