Update ssh env var checking

- Add `SSH_CLIENT`
- Change from `std::env::var` to `std::env::var_os`
This commit is contained in:
Candifloss 2026-01-23 10:54:56 +05:30
parent e3b71a2afb
commit be7d75995e

View File

@ -1,15 +1,15 @@
use ansi_term::ANSIGenericString;
use ansi_term::Colour::RGB;
use std::env::var; // For environment variables
use std::env::var_os; // For environment variables
pub const SSH_SYMBOL: &str = "\u{276F}"; // SSH indicator symbol: ""
pub const SSH_COL: ansi_term::Colour = RGB(255, 149, 0); // In SSH session
pub const NORMIE_COL: ansi_term::Colour = RGB(82, 82, 82); // Non-SSH session
const SSH_ENV_VARS: [&str; 2] = ["SSH_TTY", "SSH_CONNECTION"]; // Environment variables normally present in SSH sessions
const SSH_ENV_VARS: [&str; 3] = ["SSH_TTY", "SSH_CONNECTION", "SSH_CLIENT"]; // Environment variables normally present in SSH sessions
/// Checks if current session is an SSH session
fn is_ssh_session() -> bool {
SSH_ENV_VARS.iter().any(|&var_name| var(var_name).is_ok()) // any() iterates through the iter and stops at first `true`. Equal to `||`(`or` condition)
SSH_ENV_VARS.iter().any(|&var_name| var_os(var_name).is_some()) // any() iterates through the iter and stops at first `true`. Equal to `||`(`or` condition)
}
/// SSH shell indicator