add dep
This commit is contained in:
1207
Cargo.lock
generated
1207
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -10,4 +10,6 @@ edition = "2018"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
argparse = "0.2.2"
|
||||
rust_util = "0.2.4"
|
||||
dingtalk = "1.3.2"
|
||||
|
||||
|
||||
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