Generate default files
This commit is contained in:
parent
5928661d90
commit
6dbedc5eb6
|
@ -1,7 +1,7 @@
|
|||
use serde::Deserialize;
|
||||
use serde::{Deserialize,Serialize};
|
||||
use std::fs::read_to_string;
|
||||
|
||||
#[derive(Deserialize)]
|
||||
#[derive(Deserialize,Serialize,Debug)]
|
||||
pub struct Config {
|
||||
pub output_dir: String,
|
||||
pub src_dir: String,
|
||||
|
@ -9,11 +9,17 @@ pub struct Config {
|
|||
pub emoji_config: Option<EmojiConfig>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
#[derive(Deserialize,Serialize,Debug)]
|
||||
pub struct EmojiConfig {
|
||||
pub emoji_web_directory: String,
|
||||
pub emoji_local_directory: String,
|
||||
}
|
||||
|
||||
impl Default for Config {
|
||||
fn default() -> Self {
|
||||
Config { output_dir: "output".to_string() , src_dir: "md_src".to_string(), templates_dir: "templates".to_string(), emoji_config: None }
|
||||
}
|
||||
}
|
||||
pub fn read_config() -> Config {
|
||||
let config_string = read_to_string("mlem.toml").expect("mlem.toml config not found");
|
||||
toml::from_str(&config_string).unwrap()
|
||||
|
|
27
src/main.rs
27
src/main.rs
|
@ -3,8 +3,22 @@ pub mod config;
|
|||
pub mod emoji;
|
||||
pub mod index;
|
||||
use mlem::*;
|
||||
use std::env;
|
||||
|
||||
fn main() {
|
||||
fn main(){
|
||||
let args: Vec<String> = env::args().collect();
|
||||
|
||||
if args.len() == 1 {
|
||||
generate();
|
||||
} else if args[1] == "create" {
|
||||
create_default_env()
|
||||
} else {
|
||||
eprintln!("Option not recognized");
|
||||
std::process::exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
fn generate() {
|
||||
let config = config::read_config();
|
||||
let raw_files = read_src_files(&config.src_dir);
|
||||
let mut post_index: Vec<index::BlogPost> = Vec::new();
|
||||
|
@ -36,3 +50,14 @@ fn main() {
|
|||
std::fs::write(format!("{}/index.html", config.output_dir), index)
|
||||
.unwrap_or_else(|_| panic!("Error writing index"));
|
||||
}
|
||||
|
||||
fn create_default_env() {
|
||||
println!("Writing a default mlem.toml");
|
||||
let config = config::Config::default();
|
||||
let toml_config = toml::to_string(&config).unwrap();
|
||||
std::fs::write("mlem.toml", toml_config).unwrap();
|
||||
println!("Creating default directorys");
|
||||
std::fs::create_dir(config.output_dir).unwrap();
|
||||
std::fs::create_dir(config.src_dir).unwrap();
|
||||
std::fs::create_dir(config.templates_dir).unwrap();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue