[bake] initial commit

This commit is contained in:
soup 2024-12-21 01:17:25 -05:00
parent c9d964b20d
commit eb0ef2c4b2
Signed by: soup
SSH key fingerprint: SHA256:GYxje8eQkJ6HZKzVWDdyOUF1TyDiprruGhE0Ym8qYDY
5 changed files with 104 additions and 0 deletions

32
bake/Cargo.lock generated Normal file
View file

@ -0,0 +1,32 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 4
[[package]]
name = "bake"
version = "0.0.1"
dependencies = [
"eyre",
]
[[package]]
name = "eyre"
version = "0.6.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec"
dependencies = [
"indenter",
"once_cell",
]
[[package]]
name = "indenter"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
[[package]]
name = "once_cell"
version = "1.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"

14
bake/Cargo.toml Normal file
View file

@ -0,0 +1,14 @@
[package]
name = "bake"
version = "0.0.1"
edition = "2024"
[lib]
path = "lib/lib.rs"
[[bin]]
name = "bake"
path = "bin/main.rs"
[dependencies]
eyre = "0.6.12"

35
bake/bin/main.rs Normal file
View file

@ -0,0 +1,35 @@
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()
}

1
bake/build.bake Normal file
View file

@ -0,0 +1 @@
(-> :name run (phony) (phony) "cargo run")

22
bake/lib/lib.rs Normal file
View file

@ -0,0 +1,22 @@
pub type Result<T> = core::result::Result<T, Error>;
#[derive(Debug)]
pub struct Error;
impl core::fmt::Display for Error {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{self:?}")
}
}
impl std::error::Error for Error {
}
pub struct Graph;
pub fn build_graph_from_str(s: &str) -> Result<Graph> {
todo!()
}
pub fn execute_graph(graph: &Graph) -> Result<()> {
todo!()
}