X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=backend%2Fbuild.rs;h=9ae79dee296ec8a2703f7346968f6b88500ab320;hb=108476e3554ea3a25dca5b5ab260f38c1e734221;hp=48175fa0364ed6d824561d63c59ad4ab4a7ce58c;hpb=a080d19cb9076780db9e86325b2ab617886e2a5f;p=recipes.git
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