X-Git-Url: http://git.euphorik.ch/?p=recipes.git;a=blobdiff_plain;f=backend%2Fbuild.rs;fp=backend%2Fbuild.rs;h=9ae79dee296ec8a2703f7346968f6b88500ab320;hp=48175fa0364ed6d824561d63c59ad4ab4a7ce58c;hb=108476e3554ea3a25dca5b5ab260f38c1e734221;hpb=a080d19cb9076780db9e86325b2ab617886e2a5f diff --git a/backend/build.rs b/backend/build.rs index 48175fa..9ae79de 100644 --- a/backend/build.rs +++ b/backend/build.rs @@ -5,21 +5,37 @@ What is build here: - Compile the SASS file to CSS file. */ -use std::process::Command; +use std::{ env, process::{ Command, Output }, path::Path }; + +fn exists_in_path

(filename: P) -> bool + where P: AsRef { + for path in env::split_paths(&env::var_os("PATH").unwrap()) { + if path.join(&filename).is_file() { return true; } + } + false +} fn main() { println!("cargo:rerun-if-changed=style.scss"); - let output = - Command::new("sass") - .arg("./style.scss") - .arg("./static/style.css") + fn run_sass(command: &mut Command) -> Output { + command + .arg("style.scss") + .arg("static/style.css") .output() - .expect("Unable to compile SASS file, install SASS, see https://sass-lang.com/"); + .expect("Unable to compile SASS file, install SASS, see https://sass-lang.com/") + } + + let output = + if exists_in_path("sass.bat") { + run_sass(Command::new("cmd").args(&["/C", "sass.bat"])) + } else { + run_sass(&mut Command::new("sass")) + }; if !output.status.success() { - //panic!("Unable to compile SASS file, install SASS, see https://sass-lang.com/") + // SASS will put the error in the file. let error = std::fs::read_to_string("./static/style.css").expect("unable to read style.css"); - panic!(error); + panic!("{}", error); } } \ No newline at end of file