gitlab-version-bot 0.1.0

Post a message to a Rocket.Chat webbook if a Gitlab instance needs to be updated.
#[macro_use]
extern crate clap;
use clap::App;

extern crate clogger;
#[macro_use]
extern crate log;

use failure::Error;
use std::process;

use crate::bot::Bot;
mod bot;
mod gitlab_tag;
mod gitlab_version;

fn app() -> Result<(), Error> {
    let yaml = load_yaml!("cli.yml");
    let matches = App::from_yaml(yaml).get_matches();

    clogger::init();
    let mut log_verbosity = 0;

    if matches.is_present("verbose") {
        log_verbosity += 1;
    }

    if matches.is_present("debug") {
        log_verbosity += 2;
    }

    clogger::set_verbosity(log_verbosity);

    let gitlab_url = matches.value_of("gitlab_url").unwrap().to_string();
    let gitlab_token = matches.value_of("gitlab_token").unwrap().to_string();
    let rocket_chat_url = matches.value_of("rocket_chat_url").unwrap().to_string();
    let rocket_chat_token = matches.value_of("rocket_chat_token").unwrap().to_string();

    let bot = Bot {
        gitlab_url: gitlab_url,
        gitlab_token: gitlab_token,
        rocket_chat_url: rocket_chat_url,
        rocket_chat_token: rocket_chat_token
    };
    bot.exec()?;

    Ok(())
}

fn main() {
    process::exit(match app() {
        Ok(_) => 0,
        Err(err) => {
            error!("{}", err.to_string());
            1
        }
    });
}