[pve-devel] [PATCH installer v2 3/8] tui: install_progress: split out low-level installer spawing into own function
Christoph Heiss
c.heiss at proxmox.com
Fri Nov 10 15:17:21 CET 2023
No functional changes.
Signed-off-by: Christoph Heiss <c.heiss at proxmox.com>
---
Changes v1 -> v2:
* moved spawn_low_level_installer() to common crate
proxmox-installer-common/src/setup.rs | 22 ++++++++++++++++-
.../src/views/install_progress.rs | 24 ++-----------------
2 files changed, 23 insertions(+), 23 deletions(-)
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<process::Child> {
+ 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<LinearLayout>,
@@ -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| {
--
2.42.0
More information about the pve-devel
mailing list