mirror of
https://github.com/Llewellynvdm/starship.git
synced 2024-11-16 01:57:07 +00:00
a87c0750cc
MacOS wc has a habit of leaving nasty spaces in the output, which was messing up our argparser. To fix, quote the output from the jobs command, then have Rust trim out whitespace in the jobs module before parsing.
34 lines
860 B
Rust
34 lines
860 B
Rust
use ansi_term::Color;
|
|
|
|
use super::{Context, Module};
|
|
|
|
/// Creates a segment to show if there are any active jobs running
|
|
pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
|
|
let mut module = context.new_module("jobs")?;
|
|
|
|
let threshold = module.config_value_i64("threshold").unwrap_or(1);
|
|
|
|
const JOB_CHAR: &str = "✦";
|
|
let module_color = Color::Blue.bold();
|
|
|
|
module.set_style(module_color);
|
|
|
|
let arguments = &context.arguments;
|
|
let num_of_jobs = arguments
|
|
.value_of("jobs")
|
|
.unwrap_or("0")
|
|
.trim()
|
|
.parse::<i64>()
|
|
.ok()?;
|
|
if num_of_jobs == 0 {
|
|
return None;
|
|
}
|
|
module.new_segment("symbol", JOB_CHAR);
|
|
if num_of_jobs > threshold {
|
|
module.new_segment("number", &num_of_jobs.to_string());
|
|
}
|
|
module.get_prefix().set_value("");
|
|
|
|
Some(module)
|
|
}
|