bnb-shell 0.1.0

A fast, polished, cross-platform terminal shell built in Rust with Powerlevel10k aesthetics.
use std::collections::HashMap;
use std::sync::Mutex;

static ALIASES: Mutex<Option<HashMap<String, String>>> = Mutex::new(None);

pub fn add_alias(key: &str, value: &str) {
    let mut guard = ALIASES.lock().unwrap();
    if guard.is_none() {
        *guard = Some(HashMap::new());
    }
    if let Some(ref mut map) = *guard {
        map.insert(key.to_string(), value.to_string());
    }
}

pub fn resolve(cmd: &str) -> Option<String> {
    let guard = ALIASES.lock().unwrap();
    if let Some(ref map) = *guard {
        map.get(cmd).cloned()
    } else {
        None
    }
}

pub fn run(args: &[String]) -> Result<(), String> {
    if args.is_empty() {
        let guard = ALIASES.lock().unwrap();
        if let Some(ref map) = *guard {
            for (k, v) in map {
                println!("alias {}='{}'", k, v);
            }
        }
        return Ok(());
    }

    for arg in args {
        if let Some((key, val)) = arg.split_once('=') {
            let clean_val = val.trim_matches(|c| c == '\'' || c == '"');
            add_alias(key, clean_val);
        }
    }
    Ok(())
}