]> git.proxmox.com Git - pve-installer.git/blobdiff - proxmox-installer-common/src/setup.rs
tui: install_progress: split out low-level installer spawing into own function
[pve-installer.git] / proxmox-installer-common / src / setup.rs
index 28a58f34343c1d51aef286a5b6453a2d8fe71718..70bdc3c218a6a1079b4df2ebf6196d90c0014397 100644 (file)
@@ -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()
+}