build.rs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. use std::{
  2. env,
  3. error::Error,
  4. fs::{read_to_string, File},
  5. io::{BufWriter, Write},
  6. path::Path,
  7. };
  8. pub fn main() -> Result<(), Box<dyn Error>> {
  9. let out_dir = env::var("OUT_DIR")?;
  10. let dest_config_path = Path::new(&out_dir).join("tauri.conf.json");
  11. let mut config_file = BufWriter::new(File::create(&dest_config_path)?);
  12. match env::var_os("TAURI_CONFIG") {
  13. Some(tauri_config) => {
  14. let tauri_config_string = tauri_config.into_string().unwrap();
  15. write!(config_file, "{}", tauri_config_string)?;
  16. }
  17. None => match env::var_os("TAURI_DIR") {
  18. Some(tauri_dir) => {
  19. let tauri_dir_string = tauri_dir.into_string().unwrap();
  20. println!("cargo:rerun-if-changed={}", tauri_dir_string);
  21. let original_config_path = Path::new(&tauri_dir_string).join("tauri.conf.json");
  22. let original_config = read_to_string(original_config_path)?;
  23. write!(config_file, "{}", original_config)?;
  24. }
  25. None => {
  26. write!(config_file, "{{}}")?;
  27. println!("Build error: Couldn't find ENV: TAURI_CONFIG or TAURI_DIR");
  28. }
  29. },
  30. }
  31. Ok(())
  32. }