From 072deb19c189711bd116b7f9e15e586ae9a96e34 Mon Sep 17 00:00:00 2001 From: Nilstrieb <48135649+Nilstrieb@users.noreply.github.com> Date: Fri, 17 Dec 2021 23:06:14 +0100 Subject: [PATCH] testing things (rollback to here if it breaks again) --- src/main.rs | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 8d28471..65b4ad4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,7 +7,9 @@ use crossterm::execute; use crossterm::terminal::{ disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen, }; -use std::io::StdoutLock; +use std::io::{ErrorKind, Read, StdoutLock}; +use std::process::Stdio; +use std::time::Duration; use std::{env, fs, io}; use tui::backend::CrosstermBackend; use tui::Terminal; @@ -16,6 +18,43 @@ use crate::model::config::Config; use crate::model::App; fn main() { + ///// ------------------------ TEST START ------------------------ + + let mut cmd = std::process::Command::new("sh"); + + let mut child = cmd + .stdout(Stdio::piped()) + .args(&["-c", "echo hello"]) + .spawn() + .unwrap(); + + let mut stdout = child.stdout.take().unwrap(); // std::fs::File::open("config.toml").unwrap(); + std::thread::spawn(move || { + let mut buf = [0; 1024]; + + println!("{}", buf.len()); + + // stdout.read_to_end(&mut buf); + + // println!("{}", String::from_utf8_lossy(&buf).as_ref()); + + // return; + + loop { + match stdout.read(&mut buf) { + Ok(0) => break, + Ok(_) => println!("READ: now `{}`", String::from_utf8(buf.to_vec()).unwrap()), + Err(e) if e.kind() == ErrorKind::Interrupted => continue, + Err(e) => eprintln!("error: {}", e), + } + } + println!("done!"); + }); + + std::thread::sleep(Duration::from_secs(3454233)); + + ///// ------------------------ TEST END ------------------------ + let file_path = env::args() .nth(1) .or_else(|| env::var("SERVICE_MANAGER_CONFIG_PATH").ok())