From: Christoph Heiss Date: Fri, 10 Nov 2023 14:17:21 +0000 (+0100) Subject: tui: install_progress: split out low-level installer spawing into own function X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=923be7633c34cfa565b89a97c4bf7f490ec7a746;p=pve-installer.git tui: install_progress: split out low-level installer spawing into own function No functional changes. Signed-off-by: Christoph Heiss --- diff --git a/proxmox-installer-common/src/setup.rs b/proxmox-installer-common/src/setup.rs index 28a58f3..70bdc3c 100644 --- a/proxmox-installer-common/src/setup.rs +++ b/proxmox-installer-common/src/setup.rs @@ -3,9 +3,10 @@ use std::{ collections::HashMap, fmt, fs::File, - io::BufReader, + io::{self, BufReader}, net::IpAddr, path::{Path, PathBuf}, + process::{self, Command, Stdio}, }; use serde::{de, Deserialize, Deserializer, Serialize, Serializer}; @@ -367,3 +368,22 @@ impl Interface { format!("{} {}", self.state.render(), self.name) } } + +pub fn spawn_low_level_installer(test_mode: bool) -> io::Result { + let (path, args, envs): (&str, &[&str], Vec<(&str, &str)>) = if test_mode { + ( + "./proxmox-low-level-installer", + &["-t", "start-session-test"], + vec![("PERL5LIB", ".")], + ) + } else { + ("proxmox-low-level-installer", &["start-session"], vec![]) + }; + + Command::new(path) + .args(args) + .envs(envs) + .stdin(Stdio::piped()) + .stdout(Stdio::piped()) + .spawn() +} diff --git a/proxmox-tui-installer/src/views/install_progress.rs b/proxmox-tui-installer/src/views/install_progress.rs index ccf53ad..a70b6cb 100644 --- a/proxmox-tui-installer/src/views/install_progress.rs +++ b/proxmox-tui-installer/src/views/install_progress.rs @@ -14,6 +14,7 @@ use cursive::{ }; use crate::{abort_install_button, setup::InstallConfig, yes_no_dialog, InstallerState}; +use proxmox_installer_common::setup::spawn_low_level_installer; pub struct InstallProgressView { view: PaddedView, @@ -59,28 +60,7 @@ impl InstallProgressView { state: InstallerState, progress_text: TextContent, ) { - let child = { - use std::process::{Command, Stdio}; - - let (path, args, envs): (&str, &[&str], Vec<(&str, &str)>) = if state.in_test_mode { - ( - "./proxmox-low-level-installer", - &["-t", "start-session-test"], - vec![("PERL5LIB", ".")], - ) - } else { - ("proxmox-low-level-installer", &["start-session"], vec![]) - }; - - Command::new(path) - .args(args) - .envs(envs) - .stdin(Stdio::piped()) - .stdout(Stdio::piped()) - .spawn() - }; - - let mut child = match child { + let mut child = match spawn_low_level_installer(state.in_test_mode) { Ok(child) => child, Err(err) => { let _ = cb_sink.send(Box::new(move |siv| {