|
|
#!/bin/bash |
|
|
|
|
|
|
|
|
function exitWithError { |
|
|
local errorMessage="$1" |
|
|
echo -e "\033[31m[ERROR] $errorMessage\033[0m" >&2 |
|
|
exit 1 |
|
|
} |
|
|
|
|
|
|
|
|
function get_cpu_arch { |
|
|
local commands=("$@") |
|
|
for cmd in "${commands[@]}"; do |
|
|
local CpuArch |
|
|
CpuArch=$(command -v $cmd >/dev/null && $cmd 2>/dev/null || type -p $cmd 2>/dev/null) |
|
|
if [[ -n "$CpuArch" ]]; then |
|
|
echo "$CpuArch" |
|
|
return |
|
|
fi |
|
|
done |
|
|
} |
|
|
|
|
|
|
|
|
if [[ -f "/etc/os-release" ]]; then |
|
|
. /etc/os-release |
|
|
case "$ID" in |
|
|
"ubuntu"|"debian"|"linuxmint") |
|
|
|
|
|
CpuArch=$(get_cpu_arch "dpkg-architecture -qDEB_HOST_ARCH_CPU" "dpkg-architecture -qDEB_BUILD_ARCH_CPU" "uname -m") |
|
|
;; |
|
|
"centos"|"fedora"|"rhel") |
|
|
|
|
|
CpuArch=$(get_cpu_arch "uname -m" "arch" "uname") |
|
|
;; |
|
|
*) |
|
|
|
|
|
CpuArch=$(get_cpu_arch "uname -m" "arch" "uname") |
|
|
if [[ -z "$CpuArch" ]]; then |
|
|
exitWithError "Failed to obtain CPU architecture" |
|
|
fi |
|
|
;; |
|
|
esac |
|
|
elif [[ -f "/etc/redhat-release" ]]; then |
|
|
|
|
|
CpuArch=$(get_cpu_arch "uname -m" "arch" "uname") |
|
|
else |
|
|
exitWithError "Unsupported Linux distribution" |
|
|
fi |
|
|
|
|
|
echo "CPU architecture: $CpuArch" |
|
|
|