vcli 0.1.4

my tiny CLI for init C++ Project
Documentation
use std::fs;
use std::path::Path;

use vcli::{generate_dir, generate_files, get_dir_lists, FileTree, Template};

const FILE_TREE_JSON: &str = include_str!("../../templates/cpp.json");

pub fn hello_cpp() {
    println!("Hello Cpp!");
}

pub fn init_cpp(project_name: &String) {
    let mut template: Template =
        serde_json::from_str(&FILE_TREE_JSON).expect("Failed to parse template JSON");

    fs::create_dir(project_name).expect("Fail to create project dir");

    let project_path = Path::new(project_name);

    if let Err(err) = generate_dir(&template, &project_path) {
        eprintln!("ERROR generate_dir {}", err);
    }

    if let Err(err) = generate_files(
        &project_path,
        project_name.clone(),
        &template.file_list,
        &mut template.file_contents,
    ) {
        eprintln!("Error writing to file: {}", err);
    }

    println!("C++ project {} initialized successfully!", project_name);
}