jencli 0.1.0

A tool to work with Jenkins from the command line.
Documentation
use ansi_term::Colour;
use chrono::prelude::*;
use handlebars::{Handlebars, Helper, RenderContext, RenderError};

pub fn date(h: &Helper, _: &Handlebars, rc: &mut RenderContext) -> Result<(), RenderError> {
    let param = h.param(0).unwrap().value();
    if let Some(ts) = param.as_i64() {
        let naive_datetime = NaiveDateTime::from_timestamp(ts / 1000, 0);
        let datetime: DateTime<Utc> = DateTime::from_utc(naive_datetime, Utc);
        let rendered = format!("{}", datetime);
        try!(rc.writer.write(rendered.into_bytes().as_ref()));
    }
    Ok(())
}

pub fn colored_status(
    h: &Helper,
    _: &Handlebars,
    rc: &mut RenderContext,
) -> Result<(), RenderError> {
    let param = h.param(0).unwrap().value();
    let to_render = match param.as_str() {
        Some("blue") => Colour::Blue.paint("blue").to_string(),
        Some("blue_anime") => Colour::Blue.bold().paint("blue").to_string(),
        Some("yellow") => Colour::Yellow.paint("yellow").to_string(),
        Some("yellow_anime") => Colour::Yellow.bold().paint("yellow").to_string(),
        Some("red") => Colour::Red.paint("red").to_string(),
        Some("red_anime") => Colour::Red.bold().paint("red").to_string(),
        Some("aborted") => Colour::White.dimmed().paint("disabled").to_string(),
        Some("disabled") => Colour::White.dimmed().paint("disabled").to_string(),
        Some("notbuilt") => Colour::White.dimmed().paint("notbuilt").to_string(),
        Some("SUCCESS") => Colour::Blue.paint("SUCCESS").to_string(),
        Some("UNSTABLE") => Colour::Yellow.paint("UNSTABLE").to_string(),
        Some("FAILURE") => Colour::Red.paint("FAILURE").to_string(),
        Some("ABORTED") => Colour::White.dimmed().paint("ABORTED").to_string(),
        Some("NOT_BUILT") => Colour::White.dimmed().paint("NOT_BUILT").to_string(),
        Some(x) => x.to_string(),
        None => "".to_string(),
    };
    let rendered = format!("{}", to_render);
    try!(rc.writer.write(rendered.into_bytes().as_ref()));
    Ok(())
}