From 971e0b7d378ad754b6d7ca395518fceae948b7ad Mon Sep 17 00:00:00 2001 From: Daniel Rainer Date: Wed, 25 Feb 2026 19:19:20 +0100 Subject: [PATCH] l10n: create common function for finding l10n/po dir Reduce repetition and make it easier to relocate the directory. This approach will also be useful for Fluent. Closes #12484 --- crates/build-helper/src/lib.rs | 8 ++++++++ crates/gettext-maps/build.rs | 12 ++---------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/crates/build-helper/src/lib.rs b/crates/build-helper/src/lib.rs index a12d79be7..5b84b6623 100644 --- a/crates/build-helper/src/lib.rs +++ b/crates/build-helper/src/lib.rs @@ -38,6 +38,14 @@ pub fn fish_doc_dir() -> Cow<'static, Path> { cargo_target_dir().join("fish-docs").into() } +fn l10n_dir() -> Cow<'static, Path> { + workspace_root().join("localization").into() +} + +pub fn po_dir() -> Cow<'static, Path> { + l10n_dir().join("po").into() +} + // TODO Move this to rsconf pub fn rebuild_if_path_changed>(path: P) { rsconf::rebuild_if_path_changed(path.as_ref().to_str().unwrap()); diff --git a/crates/gettext-maps/build.rs b/crates/gettext-maps/build.rs index 0c7469b54..eb259f986 100644 --- a/crates/gettext-maps/build.rs +++ b/crates/gettext-maps/build.rs @@ -11,11 +11,7 @@ fn main() { PathBuf::from(fish_build_helper::fish_build_dir()).join("fish-localization-map-cache"); embed_localizations(&cache_dir); - fish_build_helper::rebuild_if_path_changed( - fish_build_helper::workspace_root() - .join("localization") - .join("po"), - ); + fish_build_helper::rebuild_if_path_changed(fish_build_helper::po_dir()); } fn embed_localizations(cache_dir: &Path) { @@ -25,10 +21,6 @@ fn embed_localizations(cache_dir: &Path) { io::{BufWriter, Write as _}, }; - let po_dir = fish_build_helper::workspace_root() - .join("localization") - .join("po"); - // Ensure that the directory is created, because clippy cannot compile the code if the // directory does not exist. std::fs::create_dir_all(cache_dir).unwrap(); @@ -56,7 +48,7 @@ fn embed_localizations(cache_dir: &Path) { Ok(output) => { let has_check_format = String::from_utf8_lossy(&output.stdout).contains("--check-format"); - for dir_entry_result in po_dir.read_dir().unwrap() { + for dir_entry_result in fish_build_helper::po_dir().read_dir().unwrap() { let dir_entry = dir_entry_result.unwrap(); let po_file_path = dir_entry.path(); if po_file_path.extension() != Some(OsStr::new("po")) {