2019-08-12 17:42:33 +00:00
|
|
|
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>> {
|
2019-09-09 23:14:38 +00:00
|
|
|
let mut module = context.new_module("jobs");
|
2019-08-12 17:42:33 +00:00
|
|
|
|
|
|
|
let threshold = module.config_value_i64("threshold").unwrap_or(1);
|
|
|
|
|
|
|
|
const JOB_CHAR: &str = "✦";
|
2019-09-08 00:33:06 +00:00
|
|
|
let module_style = module
|
|
|
|
.config_value_style("style")
|
|
|
|
.unwrap_or_else(|| Color::Blue.bold());
|
|
|
|
module.set_style(module_style);
|
2019-08-12 17:42:33 +00:00
|
|
|
|
|
|
|
let arguments = &context.arguments;
|
|
|
|
let num_of_jobs = arguments
|
|
|
|
.value_of("jobs")
|
|
|
|
.unwrap_or("0")
|
2019-08-13 03:41:59 +00:00
|
|
|
.trim()
|
2019-08-12 17:42:33 +00:00
|
|
|
.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)
|
|
|
|
}
|