diff --git a/repbuild/src/main.rs b/repbuild/src/main.rs index 191d5443..f85bfe55 100644 --- a/repbuild/src/main.rs +++ b/repbuild/src/main.rs @@ -139,10 +139,6 @@ fn get_fs() -> Result, io::Error> { let fs = FileSystem::new(img, FsOptions::new())?; - // TODO: Do not hard code these here - let p = Package::load_from_file("sysdata/programs/tests/meta.toml".to_owned()); - p.build(); - // Read the contents of the file using a `match` block // to return the `data: Ok(c)` as a `String` // or handle any `errors: Err(_)`. @@ -244,7 +240,26 @@ TERM_BACKDROP={} let modules = value.get_mut("modules").unwrap().as_table_mut().unwrap(); // let mut real_modules = modules.clone(); - for (key, value) in modules.into_iter() { + modules.into_iter().for_each(|(key, value)| { + if value.is_table() && key == "tests" { + let path = value + .get("path") + .expect("You must have `path` as a value") + .as_str() + .unwrap() + .split("boot:///") + .last() + .unwrap() + .split(".") + .next() + .unwrap(); + let p = Package::load_from_file( + format!("sysdata/programs/{}/meta.toml", path).to_owned(), + ); + p.build(); + } + }); + modules.into_iter().for_each(|(_key, value)| { if value.is_table() { let path = value.get("path").expect("You must have `path` as a value"); let default_value = Value::String("".into()); @@ -258,10 +273,10 @@ TERM_BACKDROP={} ); limine_str.push_str(&a); } - } + }); // Copy modules into the test_programs directory - modules.into_iter().for_each(|(key, value)| { + modules.into_iter().for_each(|(_key, value)| { if value.is_table() { let path = value .get("path")