use std::path::PathBuf;
use clap::Parser;
mod phighlighter;
mod plectureparser;
mod lecture_config;
mod plecture;
use crate::lecture_config::{
LectureConfig,
load_lecture_config
};
use crate::plecture::create_lecture_website;
#[derive(Debug, Parser)]
#[command(version, about)]
struct Args {
#[arg(short, long)]
config: String,
#[arg(short, long, default_value = "./output_lecture")]
output: String,
}
fn create_full_website(args: &Args){
let config: LectureConfig = match load_lecture_config(&args.config) {
Ok(conf) => conf,
Err(err) => panic!("Cannot load lecture configuration {}", err),
};
create_lecture_website(&config, &PathBuf::from(&args.output));
}
fn main() {
let args = Args::parse();
create_full_website(&args);
}
#[cfg(test)]
mod tests{
use super::*;
#[test]
fn test_create_full_website(){
create_full_website(&Args { config: String::from("tests/lecture.toml"), output: String::from("target/test_base_lecture") });
}
}