Abreviate pwd

This commit is contained in:
Candifloss 2024-08-14 16:49:47 +05:30
parent 2bf65b957b
commit 4eca128f2c

View File

@ -1,22 +1,24 @@
use std::env::current_dir as current_dir;
//use std::env::var_os as var_os;
use std::env::var_os as var_os;
use std::env::args as args;
use colored::Colorize;
fn main() -> std::io::Result<()> {
let angle = "";
let pwd = current_dir()?;
let dir = pwd.display().to_string();
let mut dir = pwd.display().to_string();
let args: Vec<String> = args().collect();
let shell: String;
let user = var_os("USER").expect("noDir").to_str().expect("noDir").to_string();
let homedir = var_os("HOME").expect("noDir").to_str().expect("noDir").to_string();
if args.len() > 1 {
shell = args[1].clone();
}
else {
shell = "none".to_string();
}
let shell_char = match shell.as_str() {
"bash" => "",
"zsh" => "󰰶",
@ -25,20 +27,31 @@ fn main() -> std::io::Result<()> {
"ion" => "",
_ => "󱆃",
};
dir = str::replace(&dir, &homedir, "~"); // Abreviate homedir with "~"
/*
match var_os(USER).as_str() {
"root" => {
shell_char = shell_char.truecolor(255,53,94);
},
_ => {
shell_char = shell_char.truecolor(54,178,91);
let mut dir0 = dir.clone();
let slashes = dir.matches("/").count();
//println!("{}",slashes);
if slashes > 3 {
// let mut dir0 = dir;
let parts: Vec<&str> = dir.split("/").collect();
let len = parts.len() - 1;
let mut fch: String;
for p in &parts[0..len] {
let part = p;
fch = part.chars().next().expect("REASON").to_string(); //1st char of p
dir0 = str::replace(&dir0, part, &fch);
//println!("{}__{}__{}",p,fch,dir0);
}
}*/
}
//dir = dir0;
print!("{} {}{} ",
shell_char.truecolor(75,75,75),
dir.italic().truecolor(75,75,75),
dir0.italic().truecolor(75,75,75),
angle.truecolor(0, 255, 180),
);
Ok(())