-mod static_string_indexing;
mod instructions_template;
+mod static_string_indexing;
-use static_string_indexing::index_static_strings;
use instructions_template::generate_instructions_rs;
+use static_string_indexing::index_static_strings;
use std::env;
use std::fs;
use std::fs::File;
use std::io::Write;
use std::path::Path;
-use std::process::{self, Command};
+use std::process::{self, Command, Stdio};
fn find_prolog_files(libraries: &mut File, prefix: &str, current_dir: &Path) {
let entries = match current_dir.read_dir() {
}
fn main() {
+ let has_rustfmt = Command::new("rustfmt")
+ .arg("--version")
+ .stdin(Stdio::inherit())
+ .status()
+ .is_ok();
+
+ if !has_rustfmt {
+ println!("Failed to run rustfmt, will skip formatting generated files.")
+ }
+
let out_dir = env::var("OUT_DIR").unwrap();
let dest_path = Path::new(&out_dir).join("libraries.rs");
.write_all(quoted_output.to_string().as_bytes())
.unwrap();
- format_generated_file(instructions_path.as_path());
+ if has_rustfmt {
+ format_generated_file(instructions_path.as_path());
+ }
let static_atoms_path = Path::new(&out_dir).join("static_atoms.rs");
let mut static_atoms_file = File::create(&static_atoms_path).unwrap();
.write_all(quoted_output.to_string().as_bytes())
.unwrap();
- format_generated_file(static_atoms_path.as_path());
+ if has_rustfmt {
+ format_generated_file(static_atoms_path.as_path());
+ }
println!("cargo:rerun-if-changed=src/");
}