From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 5FC22A11C2 for ; Fri, 10 Nov 2023 15:18:02 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 37B621CD3 for ; Fri, 10 Nov 2023 15:17:32 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Fri, 10 Nov 2023 15:17:31 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 667E947B48 for ; Fri, 10 Nov 2023 15:17:31 +0100 (CET) From: Christoph Heiss To: pve-devel@lists.proxmox.com Date: Fri, 10 Nov 2023 15:17:21 +0100 Message-ID: <20231110141727.597039-4-c.heiss@proxmox.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231110141727.597039-1-c.heiss@proxmox.com> References: <20231110141727.597039-1-c.heiss@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.014 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [setup.rs] Subject: [pve-devel] [PATCH installer v2 3/8] tui: install_progress: split out low-level installer spawing into own function X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Nov 2023 14:18:02 -0000 No functional changes. Signed-off-by: Christoph Heiss --- 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 { + 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| { -- 2.42.0