summaryrefslogtreecommitdiffstats
path: root/src/modules/jobs.rs
diff options
context:
space:
mode:
authorJohn Letey <30328854+johnletey@users.noreply.github.com>2019-08-12 18:42:33 +0100
committerMatan Kushner <hello@matchai.me>2019-08-12 13:42:33 -0400
commit82cf484cedd0e989b39af760d6cc83b500454610 (patch)
tree7b76247043084608c947933ea0e7f1704a1a6b7d /src/modules/jobs.rs
parent3f6fe50adb98ded2c7f90a581d2b8e1e88cde7e2 (diff)
feat: Implement the prompt module for jobs (#85)
Diffstat (limited to 'src/modules/jobs.rs')
-rw-r--r--src/modules/jobs.rs32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/modules/jobs.rs b/src/modules/jobs.rs
new file mode 100644
index 000000000..4a89a1af3
--- /dev/null
+++ b/src/modules/jobs.rs
@@ -0,0 +1,32 @@
+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")
+ .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)
+}