confidence 1.0.0

Build confidence that two directories are equal by hashing contents
Documentation
use clap::{Arg, App};

fn main() {
    let matches = App::new("confidence").version("0.1.0")
            .author("John Baber-Lucero <cargo@frundle.com>")
            .about("Given one directory, output file full of hashes to compare with a future
directory or compare to a provided file full of hashes.\nGiven two directories, directly compare the directories' files.")
            .arg(Arg::with_name("ignore-permission-errors")
                    .short("i")
                    .long("ignore-permission-errors")
                    .help("Ignore errors so you can skip files you don't have permission to read. Useful for examining everything on a drive that your non-root user can see.")
                    .takes_value(false)
            ).arg(Arg::with_name("progress")
                    .short("p")
                    .long("progress")
                    .help("Print progress bar to stderr")
                    .takes_value(false)
            ).arg(Arg::with_name("verbosity")
                    .short("v")
                    .multiple(true)
                    .help("verbosity level (0 - 3 v's)")
            ).arg(Arg::with_name("output")
                    .short("o")
                    .long("output-filename")
                    .takes_value(true)
                    .help("File to output hashes to if only <directory_one> provided.  Defaults to STDOUT")
            ).arg(Arg::with_name("input")
                    .short("f")
                    .long("input-filename")
                    .takes_value(true)
                    .help("File full of hashes to compare to <directory_one>")
            ).arg(Arg::with_name("size")
                    .help("Approximate total number of bytes of regular files in <directory_one>. Note: Simply running `du -b directory_one` yields a larger number because directories themselves take up diskspace even when empty.")
                    .short("s")
                    .long("size")
                    .takes_value(true)
            ).arg(Arg::with_name("find-size")
                    .help("Find total number of bytes of regular files in <directory_one>. Note: This is smaller than `du -b directory_one` because directories themselves take up diskspace even when empty.")
                    .short("S")
                    .long("find-size")
                    .takes_value(false)
            ).arg(Arg::with_name("directory_one")
                    .required(true)
                    .index(1)
            ).arg(Arg::with_name("directory_two")
                    .help("If present, we'll just directly compare <directory_one> and <directory_two>")
                    .required(false)
                    .index(2)
                    .conflicts_with("output")
            ).get_matches();


    std::process::exit(confidence::actual_runtime(matches));
}