add dep
This commit is contained in:
78
src/main.rs
78
src/main.rs
@@ -1,3 +1,77 @@
|
||||
fn main() {
|
||||
println!("Hello, world!");
|
||||
use std::process::Command;
|
||||
use serde::{ Deserialize, Serialize, };
|
||||
use rust_util::util_msg::{ print_info, print_error, };
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
struct KeepRunningConfig {
|
||||
notify_token: String,
|
||||
items: Vec<KeepRunningConfigItem>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
struct KeepRunningConfigItem {
|
||||
grep_tokens: Vec<String>,
|
||||
title: String,
|
||||
}
|
||||
|
||||
fn main() {
|
||||
print_info("Start run: ps aux");
|
||||
let output_str = match ps_aux() {
|
||||
Some(output_str) => output_str, None => return,
|
||||
};
|
||||
let lines = read_str_to_lines(&output_str);
|
||||
|
||||
// println!("{}", output_str);
|
||||
// for ln in &lines {
|
||||
// println!(">>>>>>> {}", ln);
|
||||
// }
|
||||
println!("{:?}", lines.iter().filter(|ln| ln.contains("java") && ln.contains("aaa")).collect::<Vec<_>>());
|
||||
println!("{}", lines.len());
|
||||
}
|
||||
|
||||
fn ps_aux() -> Option<String> {
|
||||
let mut cmd = Command::new("ps");
|
||||
cmd.arg("aux");
|
||||
let output = match cmd.output() {
|
||||
Ok(output) => output, Err(err) => {
|
||||
print_error(&format!("Run ps error: {}", err));
|
||||
return None;
|
||||
},
|
||||
};
|
||||
match String::from_utf8(output.stdout) {
|
||||
Ok(output_str) => Some(output_str), Err(err) => {
|
||||
print_error(&format!("Get ps output as utf8 error: {}", err));
|
||||
return None;
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
fn read_str_to_lines(s: &str) -> Vec<String> {
|
||||
let mut r = vec![];
|
||||
|
||||
let mut line = String::new();
|
||||
let mut cs = s.chars();
|
||||
while let Some(c) = cs.next() {
|
||||
if c == '\n' || c == '\r' {
|
||||
r.push(line.clone());
|
||||
line.clear();
|
||||
if c == '\r' {
|
||||
if let Some(nc) = cs.next() {
|
||||
if nc == '\n' {
|
||||
// IGNORE
|
||||
} else if nc == '\r' {
|
||||
r.push("".to_owned());
|
||||
} else {
|
||||
line.push(nc);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
line.push(c);
|
||||
}
|
||||
}
|
||||
if !line.is_empty() {
|
||||
r.push(line);
|
||||
}
|
||||
r
|
||||
}
|
||||
Reference in New Issue
Block a user