use anyhow::Error;
use fehler::throws;
use lambda_build::{run, Opt};
use log::{Level, Metadata, Record};
struct Logger;
impl log::Log for Logger {
fn enabled(&self, metadata: &Metadata) -> bool {
metadata.level() <= Level::Info
}
fn log(&self, record: &Record) {
if self.enabled(record.metadata()) {
println!("{}", record.args());
}
}
fn flush(&self) {}
}
static LOGGER: Logger = Logger;
#[throws]
fn main() {
log::set_logger(&LOGGER)
.map(|()| log::set_max_level(log::LevelFilter::Info))?;
let opt: Opt = argh::from_env();
run(&opt)?;
}
#[cfg(test)]
mod tests {
use super::*;
use argh::FromArgs;
#[test]
fn test_readme_usage() {
let readme = include_str!("../README.md");
let mut usage = Opt::from_args(&["lambda-build"], &["--help"])
.unwrap_err()
.output;
usage = usage.replace("Usage: ", "");
assert!(readme.contains(&usage));
}
}