vstatus 0.0.1

Lightning-fast version control status string generator
Documentation
extern crate docopt;
extern crate vstatus;
#[macro_use]
extern crate serde_derive;

const USAGE: &str = "
Usage: vstatus <format>
       vstatus -h | --help
       vstatus --version

Arguments:
    format      Version control status string format

Options:
    -h, --help  Show this screen.
    --version   Show version.
";

#[derive(Deserialize)]
struct Args {
    arg_format: String,
    flag_version: bool,
}

fn main() {
    let args: Args =
        docopt::Docopt::new(USAGE)
            .and_then(|docopts|
                docopts.argv(std::env::args().into_iter())
                   .deserialize()
            )
            .unwrap_or_else(|error|
                error.exit()
            );

    if args.flag_version {
        println!("vstatus v{}", vstatus::version());
    } else {
        let exit_code = vstatus::run(&args.arg_format);
        if exit_code != 0 {
            std::process::exit(exit_code)
        }
    }
}