Better way to check for root user
This commit is contained in:
parent
a2b1b1fbfb
commit
e3b71a2afb
7
Cargo.lock
generated
7
Cargo.lock
generated
@ -11,11 +11,18 @@ dependencies = [
|
|||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libc"
|
||||||
|
version = "0.2.180"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "prettyprompt"
|
name = "prettyprompt"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ansi_term",
|
"ansi_term",
|
||||||
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|||||||
@ -1,10 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "prettyprompt"
|
name = "prettyprompt"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
edition = "2021"
|
edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
ansi_term = "0.12"
|
ansi_term = "0.12"
|
||||||
|
libc = "0.2.180"
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "prettyprompt"
|
name = "prettyprompt"
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
use crate::indicators::git::{repo_name, MAIN_COL};
|
use crate::indicators::git::{MAIN_COL, repo_name};
|
||||||
use ansi_term::ANSIGenericString;
|
use ansi_term::ANSIGenericString;
|
||||||
use ansi_term::Colour::RGB;
|
use ansi_term::Colour::RGB;
|
||||||
use std::env::current_dir;
|
use std::env::current_dir;
|
||||||
@ -77,7 +77,7 @@ pub fn pwd(
|
|||||||
format!(
|
format!(
|
||||||
"{}{}{}",
|
"{}{}{}",
|
||||||
REPO_COL.paint(repo_name), // Repo name
|
REPO_COL.paint(repo_name), // Repo name
|
||||||
MAIN_COL.paint(" \u{F02A2} "), // Seperator
|
MAIN_COL.paint(" \u{F02A2} "), // Separator
|
||||||
PATH_COL.italic().paint(path) // Sub-directory
|
PATH_COL.italic().paint(path) // Sub-directory
|
||||||
)
|
)
|
||||||
.into()
|
.into()
|
||||||
|
|||||||
@ -1,21 +1,20 @@
|
|||||||
use ansi_term::ANSIGenericString;
|
use ansi_term::ANSIGenericString;
|
||||||
use ansi_term::Colour::RGB;
|
use ansi_term::Colour::RGB;
|
||||||
use std::env::var; // For environment variables
|
|
||||||
|
use libc::geteuid;
|
||||||
|
|
||||||
pub const USER_SYMBOL: &str = "\u{276F}"; // User indicator symbol: "❯"
|
pub const USER_SYMBOL: &str = "\u{276F}"; // User indicator symbol: "❯"
|
||||||
pub const ROOT_COL: ansi_term::Colour = RGB(255, 53, 94); // If the user is root
|
pub const ROOT_COL: ansi_term::Colour = RGB(255, 53, 94); // If the user is root
|
||||||
pub const NORMIE_COL: ansi_term::Colour = RGB(0, 255, 180); // Regular user
|
pub const NORMIE_COL: ansi_term::Colour = RGB(0, 255, 180); // Regular user
|
||||||
const ROOT_USER: &str = "root"; // Root username constant
|
|
||||||
|
|
||||||
/// Username of current user
|
// Check if the current user is root
|
||||||
pub fn username() -> String {
|
pub fn is_root() -> bool {
|
||||||
var("USER").unwrap_or_else(|_| "UnknownUser".to_string())
|
unsafe { geteuid() == 0 } // Uid for root is 0
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Root user indicator
|
/// Root user indicator
|
||||||
pub fn indicator() -> ANSIGenericString<'static, str> {
|
pub fn indicator() -> ANSIGenericString<'static, str> {
|
||||||
let user = username();
|
if is_root() {
|
||||||
if user == ROOT_USER {
|
|
||||||
ROOT_COL.paint(USER_SYMBOL)
|
ROOT_COL.paint(USER_SYMBOL)
|
||||||
} else {
|
} else {
|
||||||
NORMIE_COL.paint(USER_SYMBOL)
|
NORMIE_COL.paint(USER_SYMBOL)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user