summaryrefslogtreecommitdiffstats
path: root/src/modules/char.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/char.rs')
-rw-r--r--src/modules/char.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/modules/char.rs b/src/modules/char.rs
new file mode 100644
index 000000000..96387c740
--- /dev/null
+++ b/src/modules/char.rs
@@ -0,0 +1,34 @@
+use crate::Segment;
+use ansi_term::{Color, Style};
+use std::env;
+
+pub fn segment() -> Segment {
+ const PROMPT_CHAR: &str = "➜ ";
+ const COLOR_SUCCESS: Color = Color::Green;
+ const COLOR_FAILURE: Color = Color::Red;
+
+ let default_prefix = Segment {
+ value: String::from("testPrefix"),
+ style: Style::default(),
+ prefix: None,
+ suffix: None,
+ };
+
+ let color;
+ if let Ok(status) = env::var("status") {
+ if status == "0" {
+ color = COLOR_SUCCESS;
+ } else {
+ color = COLOR_FAILURE;
+ }
+ } else {
+ panic!("No status environment variable provided");
+ }
+
+ Segment {
+ prefix: Some(Box::new(default_prefix)),
+ value: String::from(PROMPT_CHAR),
+ style: Style::new().fg(color),
+ suffix: None,
+ }
+}