aboutsummaryrefslogtreecommitdiff
path: root/src/cwd.rs
blob: 157858ccbc6db9d64f8b0d2a300bb0bad99873c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
use std::env;
use tico::tico;
use colored::*;

pub fn cwd() -> Option<colored::ColoredString> {
    let path_env = env::current_dir().ok()?;
    let mut path = format!("{}", path_env.display());
    let home = env::var("HOME").unwrap();
    let tilde_expand = env::var("EXPAND_TILDE").unwrap_or("0".into());

    match tilde_expand.as_ref() {
        "0" => {
            if (&path[..]).starts_with(&home[..]) && home.len() > 0 {
                path = path.replacen(&home[..], "~", 1);
            }
        }
        _ => {}
    };

    let cwd_shorten = env::var("SHORTEN_CWD").unwrap_or("1".into());
    let cwd_color = env::var("CWD_COLOR").unwrap_or("white".into());
    match cwd_shorten.as_ref() {
        "0" => return Some(path.color(cwd_color)),
        _ => return Some(tico(&path[..]).color(cwd_color))
    }

}