e835922ded
Not much use declaring the cargo flag when we bake the env var into the binary! Also treat an empty variable as missing.
46 lines
1.2 KiB
Rust
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(())
|
|
}
|