clap_doc_generator 0.1.0

Automatically generate CLI documentation from clap definitions and update readme files
mod attr_parser;
mod command_tree;
mod extraction;
mod model_command;
mod model_parsed;
mod render_markdown;
mod source_analysis;
mod type_helper;
mod utils;

use std::path::Path;

use self::render_markdown::render_markdown;
use self::source_analysis::analyze_project_source;
use self::utils::read_binary_name;
use self::utils::update_readme;

pub fn generate_docs(
    project_path: &Path,
    readme_path: &Path,
    start_marker: &str,
    end_marker: &str,
) -> Result<(), String> {
    let binary_name = read_binary_name(project_path)?;
    let command_tree = analyze_project_source(project_path, &binary_name)?;
    let markdown = render_markdown(&command_tree);

    update_readme(readme_path, &markdown, start_marker, end_marker)
}