git-editor 2.0.1

A command-line tool to edit git commit timestamps, messages, and author information
Documentation
use colored::*;

pub fn print_help() {
    println!(
        "{}",
        "Git Editor - Git History Rewriting Tool".green().bold()
    );
    println!();
    println!("{}", "A powerful Rust-based command-line utility designed to safely rewrite Git commit metadata.".white());
    println!();
    println!("{}", "USAGE:".yellow().bold());
    println!("    {} [OPTIONS]", "git-editor".cyan());
    println!();
    println!("{}", "OPERATION MODES:".yellow().bold());
    println!("  {} Full History Rewrite (default)", "".green());
    println!("    Requires: --email, --name, --begin, --end");
    println!("    Example: git-editor --email user@example.com --name \"User\" --begin \"2023-01-01 00:00:00\" --end \"2023-01-07 23:59:59\"");
    println!();
    println!("  {} Show History", "".green());
    println!("    Flag: -s, --show-history");
    println!("    Example: git-editor -s");
    println!();
    println!("  {} Pick Specific Commits", "".green());
    println!("    Flag: -p, --pick-specific-commits");
    println!("    Example: git-editor -p");
    println!();
    println!("  {} Range Editing", "".green());
    println!("    Flag: -x, --range");
    println!("    Example: git-editor -x");
    println!();
    println!("  {} Simulation Mode (Dry-Run)", "".green());
    println!("    Flag: --simulate");
    println!("    Shows what changes would be made without applying them");
    println!("    Example: git-editor --simulate --name \"Author\" --email \"author@example.com\"");
    println!("    Example: git-editor --simulate --show-diff --name \"Author\" --email \"author@example.com\"");
    println!();
    println!("{}", "OPTIONS:".yellow().bold());
    println!(
        "  {:<25} Path to Git repository (defaults to current directory)",
        "-r, --repo-path <PATH>".cyan()
    );
    println!(
        "  {:<25} Email for rewritten commits",
        "--email <EMAIL>".cyan()
    );
    println!(
        "  {:<25} Name for rewritten commits",
        "-n, --name <NAME>".cyan()
    );
    println!(
        "  {:<25} Start date (YYYY-MM-DD HH:MM:SS)",
        "-b, --begin <DATE>".cyan()
    );
    println!(
        "  {:<25} End date (YYYY-MM-DD HH:MM:SS)",
        "-e, --end <DATE>".cyan()
    );
    println!("  {:<25} Show commit history", "-s, --show-history".cyan());
    println!(
        "  {:<25} Interactive commit selection",
        "-p, --pick-specific-commits".cyan()
    );
    println!("  {:<25} Interactive range editing", "-x, --range".cyan());
    println!(
        "  {:<25} Dry-run mode - preview changes without applying",
        "--simulate".cyan()
    );
    println!(
        "  {:<25} Show detailed diff in simulation (requires --simulate)",
        "--show-diff".cyan()
    );
    println!("  {:<25} Print help information", "-h, --help".cyan());
    println!("  {:<25} Print version information", "-V, --version".cyan());
    println!();
    println!(
        "{}",
        "For more detailed usage information, use: git-editor --help"
            .white()
            .italic()
    );
}