AI-Studio/runtime/build.rs

56 lines
1.9 KiB
Rust

use std::path::PathBuf;
fn main() {
tauri_build::build();
// Tells Cargo to re-run this script only, when the version.txt file was changed:
println!("cargo:rerun-if-changed=../metadata.txt");
let out_dir = PathBuf::from(std::env::var("OUT_DIR").unwrap());
println!("cargo:rustc-env=OUT_DIR={}", out_dir.to_str().unwrap());
let metadata = include_str!("../metadata.txt");
let mut metadata_lines = metadata.lines();
let version = metadata_lines.next().unwrap();
update_cargo_toml("Cargo.toml", version);
update_tauri_conf("tauri.conf.json", version);
}
fn update_cargo_toml(cargo_path: &str, version: &str) {
let cargo_toml = std::fs::read_to_string(cargo_path).unwrap();
let cargo_toml_lines = cargo_toml.lines();
let mut new_cargo_toml = String::new();
for line in cargo_toml_lines {
if line.starts_with("version = ") {
new_cargo_toml.push_str(&format!("version = \"{version}\""));
} else {
new_cargo_toml.push_str(line);
}
new_cargo_toml.push('\n');
}
std::fs::write(cargo_path, new_cargo_toml).unwrap();
}
fn update_tauri_conf(tauri_conf_path: &str, version: &str) {
let tauri_conf = std::fs::read_to_string(tauri_conf_path).unwrap();
let tauri_conf_lines = tauri_conf.lines();
let mut new_tauri_conf = String::new();
for line in tauri_conf_lines {
// The version in Tauri's config is formatted like this:
// "version": "0.1.0-alpha.0"
// Please notice, that the version number line might have a leading tab, etc.
if line.contains("\"version\": ") {
new_tauri_conf.push_str(&format!("\t\"version\": \"{version}\""));
} else {
new_tauri_conf.push_str(line);
}
new_tauri_conf.push('\n');
}
std::fs::write(tauri_conf_path, new_tauri_conf).unwrap();
}