From dc46056376bde06a667917a23914f66b50cdeab3 Mon Sep 17 00:00:00 2001 From: Christoph Heiss Date: Mon, 9 Dec 2024 13:45:56 +0100 Subject: [PATCH] common: setup: read locale info as shipped by the installer directly Now that we have a pre-generated `locale-info.json` available, skip generating one on-the-fly and just read that one. Signed-off-by: Christoph Heiss --- proxmox-installer-common/src/setup.rs | 20 +++++++++++++++----- proxmox-low-level-installer | 3 --- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/proxmox-installer-common/src/setup.rs b/proxmox-installer-common/src/setup.rs index 4b4920e..c3004bc 100644 --- a/proxmox-installer-common/src/setup.rs +++ b/proxmox-installer-common/src/setup.rs @@ -87,13 +87,23 @@ impl IsoInfo { #[derive(Clone, Deserialize)] pub struct IsoLocations { pub iso: PathBuf, + pub lib: PathBuf, } impl IsoLocations { /// A mocked location, uses the current working directory by default pub fn mocked() -> Self { + let lib = match std::env::current_dir() { + Ok(mut dir) => { + dir.push("run"); + dir + } + Err(_) => "/dev/null".into(), + }; + Self { iso: std::env::current_dir().unwrap_or("/dev/null".into()), + lib, } } } @@ -171,24 +181,24 @@ pub fn installer_setup(in_test_mode: bool) -> Result<(SetupInfo, LocaleInfo, Run } pub fn load_installer_setup_files( - base_path: impl AsRef, + runtime_dir: impl AsRef, ) -> Result<(SetupInfo, LocaleInfo, RuntimeInfo), String> { let installer_info: SetupInfo = { - let mut path = base_path.as_ref().to_path_buf(); + let mut path = runtime_dir.as_ref().to_path_buf(); path.push("iso-info.json"); read_json(&path).map_err(|err| format!("Failed to retrieve setup info: {err}"))? }; let locale_info = { - let mut path = base_path.as_ref().to_path_buf(); - path.push("locales.json"); + let mut path = installer_info.locations.lib.clone(); + path.push("locale-info.json"); read_json(&path).map_err(|err| format!("Failed to retrieve locale info: {err}"))? }; let mut runtime_info: RuntimeInfo = { - let mut path = base_path.as_ref().to_path_buf(); + let mut path = runtime_dir.as_ref().to_path_buf(); path.push("run-env-info.json"); read_json(&path) diff --git a/proxmox-low-level-installer b/proxmox-low-level-installer index e5c2908..bcfe60e 100755 --- a/proxmox-low-level-installer +++ b/proxmox-low-level-installer @@ -100,9 +100,6 @@ if ($cmd eq 'dump-env') { make_path($out_dir); die "failed to create output directory '$out_dir'\n" if !-d $out_dir; - my $locales_serialized = to_json($env->{locales}, {canonical => 1, utf8 => 1}) ."\n"; - file_write_all("$out_dir/locales.json", $locales_serialized); - my $iso_info = { 'iso-info' => $env->{iso}, 'product' => $env->{product},