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