osoy 0.5.1

Command-line git repository manager
Documentation
use osoy::{Config, Exec, Operator};
use std::{env, process};
use structopt::StructOpt;

fn main() {
    match Operator::from_args_safe() {
        Ok(operator) => process::exit(operator.exec(Config::from_env())),
        Err(err) => {
            let args = env::args().skip(1).collect::<Vec<String>>();
            args.get(0)
                .map(|exe| {
                    process::Command::new(&format!("{}-{}", env!("CARGO_PKG_NAME"), exe))
                        .args(&args[1..])
                        .status()
                        .ok()
                })
                .flatten()
                .map(|status| status.code())
                .flatten()
                .map(process::exit);
            err.exit()
        }
    }
}