first
This commit is contained in:
59
lib/system.sh
Normal file
59
lib/system.sh
Normal file
@@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
system_require_bash() {
|
||||
if [[ -z "${BASH_VERSION:-}" ]]; then
|
||||
printf 'Bash est requis.\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
system_require_debian() {
|
||||
if [[ ! -r /etc/os-release ]]; then
|
||||
ui_error "Impossible de detecter le systeme"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! grep -Eq '^ID=debian$|^ID_LIKE=.*debian' /etc/os-release; then
|
||||
ui_error "Ce script cible Debian"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ui_success "Systeme Debian detecte"
|
||||
}
|
||||
|
||||
system_require_root() {
|
||||
if [[ "${EUID:-$(id -u)}" -ne 0 ]]; then
|
||||
ui_error "Relancer ce script avec sudo ou en root"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ui_success "Privileges root valides"
|
||||
}
|
||||
|
||||
system_user_exists() {
|
||||
local user_name="$1"
|
||||
id "$user_name" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
system_group_exists() {
|
||||
local group_name="$1"
|
||||
getent group "$group_name" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
system_user_in_group() {
|
||||
local user_name="$1"
|
||||
local group_name="$2"
|
||||
id -nG "$user_name" 2>/dev/null | tr ' ' '\n' | grep -Fx "$group_name" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
system_primary_interface() {
|
||||
ip route get 1.1.1.1 2>/dev/null | awk '
|
||||
/dev/ {
|
||||
for (i = 1; i <= NF; i++) {
|
||||
if ($i == "dev") {
|
||||
print $(i + 1)
|
||||
exit
|
||||
}
|
||||
}
|
||||
}'
|
||||
}
|
||||
Reference in New Issue
Block a user