Spaces:
Sleeping
Sleeping
File size: 1,171 Bytes
01d5a5d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
#!/bin/bash
# OS detection utility functions
# Detect OS type: Returns "macos", "linux", "windows", or "unknown"
detect_os_type() {
if [[ "$OSTYPE" == "darwin"* ]]; then
echo "macos"
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
echo "linux"
elif [[ "$OSTYPE" == "msys"* ]] || [[ "$OSTYPE" == "cygwin"* ]] || [[ "$OSTYPE" == "win32" ]]; then
echo "windows"
else
echo "unknown"
fi
}
# Detect Linux distribution: Returns "debian", "fedora", "redhat", "arch", "alpine", or "other"
detect_linux_distro() {
if [ -f /etc/debian_version ]; then
echo "debian"
elif [ -f /etc/fedora-release ]; then
echo "fedora"
elif [ -f /etc/redhat-release ]; then
echo "redhat"
elif [ -f /etc/arch-release ]; then
echo "arch"
elif [ -f /etc/alpine-release ]; then
echo "alpine"
else
echo "other"
fi
}
# Get full system identification
get_system_id() {
local os_type=$(detect_os_type)
if [ "$os_type" = "linux" ]; then
local linux_distro=$(detect_linux_distro)
echo "${os_type}-${linux_distro}"
else
echo "$os_type"
fi
}
|