ffpb 0.2.0

A modern, cli progress bar for ffmpeg
Documentation
fn main() {
    let args = std::env::args().skip(1).collect::<Vec<_>>();

    if args.iter().any(|a| a == "-h" || a == "--help") {
        eprintln!("ffmpeg with a progress bar.\n",);
        eprintln!("\x1b[1mUsage:\x1b[0m ffpb [ffmpeg arguments...]\n");
        eprintln!("\x1b[1mOptions:\x1b[0m");
        eprintln!("  --clean          Only show progress bar, suppress ffmpeg output");
        eprintln!("  -h, --help       Show this help");
        eprintln!("  -V, --version    Show ffpb version\n");
        eprintln!("\x1b[1mExamples:\x1b[0m");
        eprintln!("  ffpb -i input.mp4 -c:v libx264 output.mp4");
        eprintln!("  ffpb -ss 10 -to 20 -i input.mp4 output.mp4");
        eprintln!("  ffpb -y -i input.mp4 -c:a aac output.m4a\n");
        eprintln!("All other arguments are forwarded directly to ffmpeg.");
        return;
    }
    if args.iter().any(|a| a == "-V" || a == "--version") {
        println!("ffpb {}", env!("CARGO_PKG_VERSION"));
        return;
    }

    let code = ffpb::run(&args).unwrap_or_else(|e| {
        eprintln!("\x1b[1;31m[ERROR]\x1b[0m {e}");
        1
    });
    std::process::exit(code);
}