anki/rslib/i18n/build.rs
Damien Elmes e835922ded Fix i18n build script not responding to env var changes
Not much use declaring the cargo flag when we bake the env var into
the binary! Also treat an empty variable as missing.
2023-07-04 17:17:41 +10:00

46 lines
1.2 KiB
Rust

// Copyright: Ankitects Pty Ltd and contributors
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
mod check;
mod extract;
mod gather;
mod python;
mod typescript;
mod write_strings;
use std::env;
use std::path::PathBuf;
use anki_io::create_dir_all;
use anki_io::write_file_if_changed;
use anyhow::Result;
use check::check;
use extract::get_modules;
use gather::get_ftl_data;
use write_strings::write_strings;
// fixme: check all variables are present in translations as well?
fn main() -> Result<()> {
// generate our own requirements
let map = get_ftl_data();
check(&map);
let modules = get_modules(&map);
write_strings(&map, &modules);
typescript::write_ts_interface(&modules)?;
python::write_py_interface(&modules)?;
// write strings.json file to requested path
println!("cargo:rerun-if-env-changed=STRINGS_JSON");
if let Ok(path) = env::var("STRINGS_JSON") {
if !path.is_empty() {
let path = PathBuf::from(path);
let meta_json = serde_json::to_string_pretty(&modules).unwrap();
create_dir_all(path.parent().unwrap())?;
write_file_if_changed(path, meta_json)?;
}
}
Ok(())
}