1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
use askama::Template;
use aws_codebuild_status_derive::{BuildInformation, CodebuildOutput};
use std::collections::HashMap;
use std::fs;

#[derive(Template)]
#[template(path = "codebuild.html")]
struct TemplateData {
    build_information: HashMap<String, Vec<BuildInformation>>,
}

pub struct WebOutput;

impl CodebuildOutput for WebOutput {
    fn print(build_information: HashMap<String, Vec<BuildInformation>>) {
        let template = TemplateData {
            build_information,
        };
        fs::write("/tmp/aws-codebuild-status.html", template.render().unwrap()).expect("Unable to write file");
        println!("Saved static website at: file:///tmp/aws-codebuild-status.html");
    }
}