build.rs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  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. println!("cargo:rerun-if-env-changed=TAURI_CONFIG");
  15. let tauri_config_string = tauri_config.into_string().unwrap();
  16. write!(config_file, "{}", tauri_config_string)?;
  17. }
  18. None => match env::var_os("TAURI_DIR") {
  19. Some(tauri_dir) => {
  20. let tauri_dir_string = tauri_dir.into_string().unwrap();
  21. println!("cargo:rerun-if-changed={}", tauri_dir_string);
  22. let original_config_path = Path::new(&tauri_dir_string).join("tauri.conf.json");
  23. let original_config = read_to_string(original_config_path)?;
  24. write!(config_file, "{}", original_config)?;
  25. }
  26. None => {
  27. write!(config_file, "{{}}")?;
  28. println!("Build error: Couldn't find ENV: TAURI_CONFIG or TAURI_DIR");
  29. }
  30. },
  31. }
  32. Ok(())
  33. }