From 749692bb07bdc73ff41709f5b3f855962efdd64a Mon Sep 17 00:00:00 2001 From: Thomas Forgione Date: Fri, 23 Nov 2018 09:47:41 +0100 Subject: [PATCH] Spawn thread for building, allows for multiple build at the same time --- src/server.rs | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/server.rs b/src/server.rs index 377f5fb..436b62b 100644 --- a/src/server.rs +++ b/src/server.rs @@ -18,7 +18,6 @@ use mars::{GeneralBuilder, builder_arguments_from_string}; fn main() { - let builder = GeneralBuilder::new(); let (tx, rx) = mpsc::channel(); @@ -53,19 +52,27 @@ fn main() { while let Some(uri) = tasks.pop() { - let uri = percent_decode(uri.path().as_bytes()).decode_utf8().unwrap(); - let (path, args) = builder_arguments_from_string(&*uri); + thread::spawn(move || { - println!("{}", format!("---- STARTING BUILD ---- from {}", uri).bold().green()); - match builder.build(&path, &args) { - Err(_) => { - println!("{}", "--------- FAIL ---------".bold().red()); - }, - Ok(_) => { - println!("{}", "----- SUCCESSFUL -----".bold().green()); - }, - }; - println!(); + let builder = GeneralBuilder::new(); + let uri = percent_decode(uri.path().as_bytes()).decode_utf8().unwrap(); + let (path, args) = builder_arguments_from_string(&*uri); + + let path_string = path.to_str().unwrap(); + let start_string = format!("---- STARTING BUILD ---- from {} {}", path_string, args.join(" ")); + println!("{}", start_string.bold().green()); + + match builder.build(&path, &args) { + Err(_) => { + println!("{}", "--------- FAIL ---------".bold().red()); + }, + Ok(_) => { + println!("{}", "----- SUCCESSFUL -----".bold().green()); + }, + }; + println!(); + + }); } }