Files
facinus/modules/detect_system.sh
2025-04-05 00:22:05 +03:00

50 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Detect system distro and architecture
detect_system() {
# Detect architecture
ARCH=$(uname -m)
# Detect distribution
if [ -f /etc/os-release ]; then
. /etc/os-release
DISTRO_NAME=${ID,,} # Convert to lowercase
# Check if it's an Arch-based distro
for arch_distro in "${ARCH_DISTROS[@]}"; do
if [[ "$DISTRO_NAME" == *"$arch_distro"* ]]; then
DISTRO="arch"
return
fi
done
# Check if it's a Debian-based distro
for deb_distro in "${DEB_DISTROS[@]}"; do
if [[ "$DISTRO_NAME" == *"$deb_distro"* ]]; then
DISTRO="debian"
return
fi
done
# Check if it's an RPM-based distro
for rpm_distro in "${RPM_DISTROS[@]}"; do
if [[ "$DISTRO_NAME" == *"$rpm_distro"* ]]; then
DISTRO="redhat"
return
fi
done
# If we can't determine the distro family, just use the ID
DISTRO="$DISTRO_NAME"
elif [ -f /etc/arch-release ]; then
DISTRO="arch"
elif [ -f /etc/debian_version ]; then
DISTRO="debian"
elif [ -f /etc/redhat-release ]; then
DISTRO="redhat"
else
echo "Unable to determine distribution. Defaulting to generic."
DISTRO="generic"
fi
}