error indicator

This commit is contained in:
Candifloss 2024-11-25 13:23:37 +05:30
parent 24f3f6772e
commit 7257faf85d
2 changed files with 28 additions and 5 deletions

17
src/indicators/error.rs Normal file
View File

@ -0,0 +1,17 @@
use ansi_term::ANSIGenericString;
use ansi_term::Colour::RGB;
// Error indicator symbol
pub const ERR_SYMBOL: &str = "\u{276F}"; // ""
pub const ERR_COL: ansi_term::Colour = RGB(255, 53, 94); //
pub const NORMIE_COL: ansi_term::Colour = RGB(0, 255, 180); //
// Error indicator
pub fn indicator(args: Vec<String>) -> ANSIGenericString<'static, str> {
let default_exit_code = "0".to_string();
let exit_code = args.get(1).unwrap_or(&default_exit_code); // Default to "0" if missing
match exit_code.as_str() {
"0" => NORMIE_COL.paint(ERR_SYMBOL),
_ => ERR_COL.paint(ERR_SYMBOL),
}
}

View File

@ -1,20 +1,26 @@
mod indicators {
pub mod error;
pub mod git;
pub mod ssh;
pub mod user;
}
use indicators::git;
use crate::indicators::error;
use crate::indicators::git;
use crate::indicators::ssh;
use crate::indicators::user;
fn main() {
let cmd_args: Vec<String> = std::env::args().collect();
let mut prompt: String = String::new();
let indicate_user: bool = true;
let indicate_ssh: bool = true;
let indicate_err: bool = true;
let indicate_git_branch: bool = true;
if indicate_ssh {
prompt += &ssh::indicator().to_string();
}
if indicate_git_branch {
let git_info = git::info();
match git_info {
@ -22,11 +28,11 @@ fn main() {
None => prompt += &git::indicator(None).to_string(),
};
}
if indicate_ssh {
prompt += &ssh::indicator().to_string();
}
if indicate_user {
prompt += &user::indicator().to_string();
}
if indicate_err {
prompt += &error::indicator(cmd_args).to_string();
}
print!("{prompt} ");
}