From 70e59cca3caf92a1daedac4fcf5d8940215e5529 Mon Sep 17 00:00:00 2001 From: lyn <819880950@qq.com> Date: Wed, 6 Mar 2019 21:47:00 +0100 Subject: standardize exercise running via an external toml file --- src/verify.rs | 53 +++++++++++------------------------------------------ 1 file changed, 11 insertions(+), 42 deletions(-) (limited to 'src/verify.rs') diff --git a/src/verify.rs b/src/verify.rs index b6eab36..bc44dfa 100644 --- a/src/verify.rs +++ b/src/verify.rs @@ -1,51 +1,20 @@ use crate::util::clean; use console::{style, Emoji}; use indicatif::ProgressBar; +use std::fs; use std::process::Command; +use toml::Value; pub fn verify() -> Result<(), ()> { - compile_only("exercises/variables/variables1.rs")?; - compile_only("exercises/variables/variables2.rs")?; - compile_only("exercises/variables/variables3.rs")?; - compile_only("exercises/variables/variables4.rs")?; - test("exercises/if/if1.rs")?; - compile_only("exercises/functions/functions1.rs")?; - compile_only("exercises/functions/functions2.rs")?; - compile_only("exercises/functions/functions3.rs")?; - compile_only("exercises/functions/functions4.rs")?; - compile_only("exercises/functions/functions5.rs")?; - test("exercises/test1.rs")?; - compile_only("exercises/primitive_types/primitive_types1.rs")?; - compile_only("exercises/primitive_types/primitive_types2.rs")?; - compile_only("exercises/primitive_types/primitive_types3.rs")?; - compile_only("exercises/primitive_types/primitive_types4.rs")?; - compile_only("exercises/primitive_types/primitive_types5.rs")?; - compile_only("exercises/primitive_types/primitive_types6.rs")?; - test("exercises/tests/tests1.rs")?; - test("exercises/tests/tests2.rs")?; - test("exercises/tests/tests3.rs")?; - test("exercises/test2.rs")?; - compile_only("exercises/strings/strings1.rs")?; - compile_only("exercises/strings/strings2.rs")?; - compile_only("exercises/test3.rs")?; - compile_only("exercises/modules/modules1.rs")?; - compile_only("exercises/modules/modules2.rs")?; - compile_only("exercises/macros/macros1.rs")?; - compile_only("exercises/macros/macros2.rs")?; - compile_only("exercises/macros/macros3.rs")?; - compile_only("exercises/macros/macros4.rs")?; - compile_only("exercises/test4.rs")?; - compile_only("exercises/move_semantics/move_semantics1.rs")?; - compile_only("exercises/move_semantics/move_semantics2.rs")?; - compile_only("exercises/move_semantics/move_semantics3.rs")?; - compile_only("exercises/move_semantics/move_semantics4.rs")?; - test("exercises/error_handling/errors1.rs")?; - test("exercises/error_handling/errors2.rs")?; - test("exercises/error_handling/errors3.rs")?; - test("exercises/error_handling/errorsn.rs")?; - compile_only("exercises/error_handling/option1.rs")?; - test("exercises/error_handling/result1.rs")?; - compile_only("exercises/threads/threads1.rs")?; + let toml: Value = fs::read_to_string("info.toml").unwrap().parse().unwrap(); + let tomlvec: &Vec = toml.get("exercises").unwrap().as_array().unwrap(); + for i in tomlvec { + match i.get("mode").unwrap().as_str().unwrap() { + "test" => test(i.get("path").unwrap().as_str().unwrap())?, + "compile" => compile_only(i.get("path").unwrap().as_str().unwrap())?, + _ => (), + } + } Ok(()) } -- cgit v1.2.3