36 lines
662 B
Rust
36 lines
662 B
Rust
use std::process::ExitCode;
|
|
|
|
use eyre::Context;
|
|
|
|
const USAGE: &str = r#"
|
|
bake [target...] [-- [args-for-last-target...]]
|
|
"#;
|
|
|
|
fn print_usage() {
|
|
println!("{USAGE}");
|
|
}
|
|
|
|
fn go() -> eyre::Result<()> {
|
|
let contents = match std::fs::read_to_string("build.bake") {
|
|
Ok(v) => v,
|
|
Err(e) => match e.kind() {
|
|
std::io::ErrorKind::NotFound => {
|
|
println!("build.bake not present in current directory");
|
|
return Ok(());
|
|
},
|
|
_ => {
|
|
return Err(e).wrap_err("Failed to read contents of build.bake")
|
|
},
|
|
},
|
|
};
|
|
|
|
let mut graph = bake::build_graph_from_str(&contents)?;
|
|
bake::execute_graph(&graph)?;
|
|
|
|
Ok(())
|
|
}
|
|
|
|
fn main() -> eyre::Result<()> {
|
|
go()
|
|
}
|