cargo fmt
This commit is contained in:
parent
a4bb6f170a
commit
9a35306340
@ -101,8 +101,12 @@ impl App {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn with_intervals(mut self, metrics_ms: Option<u64>, procs_ms: Option<u64>) -> Self {
|
pub fn with_intervals(mut self, metrics_ms: Option<u64>, procs_ms: Option<u64>) -> Self {
|
||||||
if let Some(m) = metrics_ms { self.metrics_interval = Duration::from_millis(m.max(100)); }
|
if let Some(m) = metrics_ms {
|
||||||
if let Some(p) = procs_ms { self.procs_interval = Duration::from_millis(p.max(200)); }
|
self.metrics_interval = Duration::from_millis(m.max(100));
|
||||||
|
}
|
||||||
|
if let Some(p) = procs_ms {
|
||||||
|
self.procs_interval = Duration::from_millis(p.max(200));
|
||||||
|
}
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -55,8 +55,12 @@ pub(crate) fn parse_args<I: IntoIterator<Item = String>>(args: I) -> Result<Pars
|
|||||||
// intentionally undocumented
|
// intentionally undocumented
|
||||||
dry_run = true;
|
dry_run = true;
|
||||||
}
|
}
|
||||||
"--metrics-interval-ms" => { metrics_interval_ms = it.next().and_then(|v| v.parse().ok()); }
|
"--metrics-interval-ms" => {
|
||||||
"--processes-interval-ms" => { processes_interval_ms = it.next().and_then(|v| v.parse().ok()); }
|
metrics_interval_ms = it.next().and_then(|v| v.parse().ok());
|
||||||
|
}
|
||||||
|
"--processes-interval-ms" => {
|
||||||
|
processes_interval_ms = it.next().and_then(|v| v.parse().ok());
|
||||||
|
}
|
||||||
_ if arg.starts_with("--tls-ca=") => {
|
_ if arg.starts_with("--tls-ca=") => {
|
||||||
if let Some((_, v)) = arg.split_once('=') {
|
if let Some((_, v)) = arg.split_once('=') {
|
||||||
if !v.is_empty() {
|
if !v.is_empty() {
|
||||||
@ -71,8 +75,16 @@ pub(crate) fn parse_args<I: IntoIterator<Item = String>>(args: I) -> Result<Pars
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ if arg.starts_with("--metrics-interval-ms=") => { if let Some((_,v))=arg.split_once('='){ metrics_interval_ms = v.parse().ok(); } }
|
_ if arg.starts_with("--metrics-interval-ms=") => {
|
||||||
_ if arg.starts_with("--processes-interval-ms=") => { if let Some((_,v))=arg.split_once('='){ processes_interval_ms = v.parse().ok(); } }
|
if let Some((_, v)) = arg.split_once('=') {
|
||||||
|
metrics_interval_ms = v.parse().ok();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ if arg.starts_with("--processes-interval-ms=") => {
|
||||||
|
if let Some((_, v)) = arg.split_once('=') {
|
||||||
|
processes_interval_ms = v.parse().ok();
|
||||||
|
}
|
||||||
|
}
|
||||||
_ => {
|
_ => {
|
||||||
if url.is_none() {
|
if url.is_none() {
|
||||||
url = Some(arg);
|
url = Some(arg);
|
||||||
@ -89,8 +101,8 @@ pub(crate) fn parse_args<I: IntoIterator<Item = String>>(args: I) -> Result<Pars
|
|||||||
save,
|
save,
|
||||||
demo,
|
demo,
|
||||||
dry_run,
|
dry_run,
|
||||||
metrics_interval_ms,
|
metrics_interval_ms,
|
||||||
processes_interval_ms,
|
processes_interval_ms,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -114,13 +126,21 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
};
|
};
|
||||||
let resolved = req.resolve(&profiles_file);
|
let resolved = req.resolve(&profiles_file);
|
||||||
let mut profiles_mut = profiles_file.clone();
|
let mut profiles_mut = profiles_file.clone();
|
||||||
let (url, tls_ca, metrics_interval_ms, processes_interval_ms): (String, Option<String>, Option<u64>, Option<u64>) = match resolved {
|
let (url, tls_ca, metrics_interval_ms, processes_interval_ms): (
|
||||||
|
String,
|
||||||
|
Option<String>,
|
||||||
|
Option<u64>,
|
||||||
|
Option<u64>,
|
||||||
|
) = match resolved {
|
||||||
ResolveProfile::Direct(u, t) => {
|
ResolveProfile::Direct(u, t) => {
|
||||||
if let Some(name) = parsed.profile.as_ref() {
|
if let Some(name) = parsed.profile.as_ref() {
|
||||||
let existing = profiles_mut.profiles.get(name);
|
let existing = profiles_mut.profiles.get(name);
|
||||||
match existing {
|
match existing {
|
||||||
None => {
|
None => {
|
||||||
let (mi, pi) = gather_intervals(parsed.metrics_interval_ms, parsed.processes_interval_ms)?;
|
let (mi, pi) = gather_intervals(
|
||||||
|
parsed.metrics_interval_ms,
|
||||||
|
parsed.processes_interval_ms,
|
||||||
|
)?;
|
||||||
profiles_mut.profiles.insert(
|
profiles_mut.profiles.insert(
|
||||||
name.clone(),
|
name.clone(),
|
||||||
ProfileEntry {
|
ProfileEntry {
|
||||||
@ -144,7 +164,10 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
))
|
))
|
||||||
};
|
};
|
||||||
if overwrite {
|
if overwrite {
|
||||||
let (mi, pi) = gather_intervals(parsed.metrics_interval_ms, parsed.processes_interval_ms)?;
|
let (mi, pi) = gather_intervals(
|
||||||
|
parsed.metrics_interval_ms,
|
||||||
|
parsed.processes_interval_ms,
|
||||||
|
)?;
|
||||||
profiles_mut.profiles.insert(
|
profiles_mut.profiles.insert(
|
||||||
name.clone(),
|
name.clone(),
|
||||||
ProfileEntry {
|
ProfileEntry {
|
||||||
@ -159,14 +182,25 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
} else {
|
} else {
|
||||||
(u, t, entry.metrics_interval_ms, entry.processes_interval_ms)
|
(u, t, entry.metrics_interval_ms, entry.processes_interval_ms)
|
||||||
}
|
}
|
||||||
} else { (u, t, entry.metrics_interval_ms, entry.processes_interval_ms) }
|
} else {
|
||||||
|
(u, t, entry.metrics_interval_ms, entry.processes_interval_ms)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
(
|
||||||
|
u,
|
||||||
|
t,
|
||||||
|
parsed.metrics_interval_ms,
|
||||||
|
parsed.processes_interval_ms,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
else { (u, t, parsed.metrics_interval_ms, parsed.processes_interval_ms) }
|
|
||||||
}
|
}
|
||||||
ResolveProfile::Loaded(u, t) => {
|
ResolveProfile::Loaded(u, t) => {
|
||||||
let entry = profiles_mut.profiles.get(parsed.profile.as_ref().unwrap()).unwrap();
|
let entry = profiles_mut
|
||||||
|
.profiles
|
||||||
|
.get(parsed.profile.as_ref().unwrap())
|
||||||
|
.unwrap();
|
||||||
(u, t, entry.metrics_interval_ms, entry.processes_interval_ms)
|
(u, t, entry.metrics_interval_ms, entry.processes_interval_ms)
|
||||||
}
|
}
|
||||||
ResolveProfile::PromptSelect(mut names) => {
|
ResolveProfile::PromptSelect(mut names) => {
|
||||||
@ -188,7 +222,12 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
return run_demo_mode(parsed.tls_ca.as_deref()).await;
|
return run_demo_mode(parsed.tls_ca.as_deref()).await;
|
||||||
}
|
}
|
||||||
if let Some(entry) = profiles_mut.profiles.get(name) {
|
if let Some(entry) = profiles_mut.profiles.get(name) {
|
||||||
(entry.url.clone(), entry.tls_ca.clone(), entry.metrics_interval_ms, entry.processes_interval_ms)
|
(
|
||||||
|
entry.url.clone(),
|
||||||
|
entry.tls_ca.clone(),
|
||||||
|
entry.metrics_interval_ms,
|
||||||
|
entry.processes_interval_ms,
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
@ -214,18 +253,19 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
} else {
|
} else {
|
||||||
Some(ca.trim().to_string())
|
Some(ca.trim().to_string())
|
||||||
};
|
};
|
||||||
let (mi, pi) = gather_intervals(parsed.metrics_interval_ms, parsed.processes_interval_ms)?;
|
let (mi, pi) =
|
||||||
profiles_mut.profiles.insert(
|
gather_intervals(parsed.metrics_interval_ms, parsed.processes_interval_ms)?;
|
||||||
|
profiles_mut.profiles.insert(
|
||||||
name.clone(),
|
name.clone(),
|
||||||
ProfileEntry {
|
ProfileEntry {
|
||||||
url: url.trim().to_string(),
|
url: url.trim().to_string(),
|
||||||
tls_ca: ca_opt.clone(),
|
tls_ca: ca_opt.clone(),
|
||||||
metrics_interval_ms: mi,
|
metrics_interval_ms: mi,
|
||||||
processes_interval_ms: pi,
|
processes_interval_ms: pi,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
let _ = save_profiles(&profiles_mut);
|
let _ = save_profiles(&profiles_mut);
|
||||||
(url.trim().to_string(), ca_opt, mi, pi)
|
(url.trim().to_string(), ca_opt, mi, pi)
|
||||||
}
|
}
|
||||||
ResolveProfile::None => {
|
ResolveProfile::None => {
|
||||||
eprintln!("No URL provided and no profiles to select.");
|
eprintln!("No URL provided and no profiles to select.");
|
||||||
@ -257,23 +297,38 @@ fn prompt_string(prompt: &str) -> io::Result<String> {
|
|||||||
Ok(line)
|
Ok(line)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn gather_intervals(arg_metrics: Option<u64>, arg_procs: Option<u64>) -> Result<(Option<u64>, Option<u64>), Box<dyn std::error::Error>> {
|
fn gather_intervals(
|
||||||
|
arg_metrics: Option<u64>,
|
||||||
|
arg_procs: Option<u64>,
|
||||||
|
) -> Result<(Option<u64>, Option<u64>), Box<dyn std::error::Error>> {
|
||||||
let default_metrics = 500u64;
|
let default_metrics = 500u64;
|
||||||
let default_procs = 2000u64;
|
let default_procs = 2000u64;
|
||||||
let metrics = match arg_metrics {
|
let metrics = match arg_metrics {
|
||||||
Some(v) => Some(v),
|
Some(v) => Some(v),
|
||||||
None => {
|
None => {
|
||||||
let inp = prompt_string(&format!("Metrics interval ms (default {default_metrics}, Enter for default): "))?;
|
let inp = prompt_string(&format!(
|
||||||
|
"Metrics interval ms (default {default_metrics}, Enter for default): "
|
||||||
|
))?;
|
||||||
let t = inp.trim();
|
let t = inp.trim();
|
||||||
if t.is_empty() { Some(default_metrics) } else { Some(t.parse()?) }
|
if t.is_empty() {
|
||||||
|
Some(default_metrics)
|
||||||
|
} else {
|
||||||
|
Some(t.parse()?)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let procs = match arg_procs {
|
let procs = match arg_procs {
|
||||||
Some(v) => Some(v),
|
Some(v) => Some(v),
|
||||||
None => {
|
None => {
|
||||||
let inp = prompt_string(&format!("Processes interval ms (default {default_procs}, Enter for default): "))?;
|
let inp = prompt_string(&format!(
|
||||||
|
"Processes interval ms (default {default_procs}, Enter for default): "
|
||||||
|
))?;
|
||||||
let t = inp.trim();
|
let t = inp.trim();
|
||||||
if t.is_empty() { Some(default_procs) } else { Some(t.parse()?) }
|
if t.is_empty() {
|
||||||
|
Some(default_procs)
|
||||||
|
} else {
|
||||||
|
Some(t.parse()?)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Ok((metrics, procs))
|
Ok((metrics, procs))
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user