use brown::BrownError as Error;
use crate::bro;
use crate::hulk_file::HulkFile;
use crate::pure;
use crate::app_consts;
mod create_site_folder;
use create_site_folder::create_site_folder;
pub fn gen()->Result<bool,Error>{
let _ = bro::remove_dir_brute(app_consts::HULK_SITE_DIR);
let _ = create_site_folder();
pure::create_css();
let dirs =
pure::data_dir_struct_clean()?;
for dir in dirs{
let files_res = bro::get_files(&dir);
match files_res {
Ok(files)=>{
for file in files {
let hulk_file = HulkFile
::new(&dir, &file)?;
let _ = bro::write_to_file(
hulk_file.get_file_write_path().as_str(),
&hulk_file.get_content());
}
},
Err(_e)=>{continue;},
}
}
Ok(true)
}
#[cfg(test)]
mod tests {
use super::*;
use crate::unit;
use crate::generator;
#[test]
fn basic(){
let x = unit::create_demo_data_dir().unwrap();
assert!(x);
let y = generator::gen().unwrap();
assert!(y);
let site_dir_struct = bro::dir_structure_to_string(app_consts::HULK_SITE_DIR);
assert!(site_dir_struct.is_ok());
let site_dir = site_dir_struct.unwrap();
for d in site_dir{
let files = bro::
get_files_by_ext(&d.as_str(),"html").unwrap();
let file_name = files[0].file_name();
assert_eq!(file_name,"demo_file.html");
println!("{:#?}",files[0].file_name());
assert_eq!(files.len(),1);
}
bro::remove_dir_brute(app_consts::HULK_DATA_DIR);
bro::remove_dir_brute(app_consts::HULK_SITE_DIR);
}
#[test]
fn organic(){
let y = generator::gen().unwrap();
assert!(y);
}
}