This commit is contained in:
2019-02-02 10:17:59 -06:00
parent 365557bd9d
commit 415972a144
2 changed files with 32 additions and 31 deletions

View File

@@ -60,51 +60,52 @@ redhat_derivative () {
} }
detect_os () { detect_os () {
local -n __resultvar="$1" || return 1 #local -n OSinfo="$1" || return 1
__resultvar[0]=`uname -m` declare -A OSinfo
OSinfo[MACH]=`uname -m`
if [ -f /etc/redhat-release ] ; then if [ -f /etc/redhat-release ] ; then
__resultvar[1]=redhat echo DISTRIBUTION=redhat
local FILE=/etc/redhat-release local FILE=/etc/redhat-release
grep -i 'red.*hat.*enterprise.*linux' $FILE 2>&1 > /dev/null && { __resultvar[2]=rhel; return; } grep -i 'red.*hat.*enterprise.*linux' $FILE 2>&1 > /dev/null && { echo DERIVATIVE=rhel; return; }
grep -i 'red.*hat.*linux' $FILE 2>&1 > /dev/null && { __resultvar[2]=rh; return; } grep -i 'red.*hat.*linux' $FILE 2>&1 > /dev/null && { echo DERIVATIVE=rh; return; }
grep -i 'cern.*e.*linux' $FILE 2>&1 > /dev/null && { __resultvar[2]=cel; return; } grep -i 'cern.*e.*linux' $FILE 2>&1 > /dev/null && { echo DERIVATIVE=cel; return; }
grep -i 'scientific linux cern' $FILE 2>&1 > /dev/null && { __resultvar[2]=slc; return; } grep -i 'scientific linux cern' $FILE 2>&1 > /dev/null && { echo DERIVATIVE=slc; return; }
grep -i 'centos' $FILE 2>&1 > /dev/null && { __resultvar[2]=centos; return; } grep -i 'centos' $FILE 2>&1 > /dev/null && { echo DERIVATIVE=centos; return; }
#__resultvar[2]=unknown #echo DERIVATIVE=unknown
__resultvar[3]=`tr -d 'a-zA-Z [](){}' < /etc/redhat-release` echo RELEASE=`tr -d 'a-zA-Z [](){}' < /etc/redhat-release`
elif [ -s /etc/slackware-version ]; then elif [ -s /etc/slackware-version ]; then
__resultvar[1]="slackware" echo DISTRIBUTION="slackware"
elif [ -f /etc/SUSE-release ] ; then elif [ -f /etc/SUSE-release ] ; then
# TODO - not tested # TODO - not tested
__resultvar[1]=suse echo DISTRIBUTION=suse
__resultvar[2]=`cat /etc/SUSE-release | tr "\n" ' '| sed s/VERSION.*//` echo PSUEDONAME=`cat /etc/SUSE-release | tr "\n" ' '| sed s/VERSION.*//`
__resultvar[3]=`cat /etc/SUSE-release | tr "\n" ' ' | sed s/.*=\ //` echo REV=`cat /etc/SUSE-release | tr "\n" ' ' | sed s/.*=\ //`
__resultvar[4]=`cat /etc/SuSE-release | grep 'VERSION' | sed -e 's#[^0-9]##g'` echo VERSION=`cat /etc/SuSE-release | grep 'VERSION' | sed -e 's#[^0-9]##g'`
elif [ -f /etc/mandrake-release ] ; then elif [ -f /etc/mandrake-release ] ; then
# TODO - not tested # TODO - not tested
__resultvar[1]=mandrake echo DISTRIBUTION=mandrake
__resultvar[2]=`cat /etc/mandrake-release | sed s/.*\(// | sed s/\)//` echo PSUEDONAME=`cat /etc/mandrake-release | sed s/.*\(// | sed s/\)//`
__resultvar[3]=`cat /etc/mandrake-release | sed s/.*release\ // | sed s/\ .*//` echo REV=`cat /etc/mandrake-release | sed s/.*release\ // | sed s/\ .*//`
echo FAMILY=rh
elif [ -f /etc/debian_version ] ; then elif [ -f /etc/debian_version ] ; then
__resultvar[1]=debian OSinfo[DISTRIBUTION]=debian
if which lsb_release 2>&1 > /dev/null ; then if which lsb_release 2>&1 > /dev/null ; then
__resultvar[2]=`lsb_release --id --short 2> /dev/null` OSinfo[DERIVATIVE]=`lsb_release --id --short 2> /dev/null`
__resultvar[3]=`lsb_release --release --short 2> /dev/null` OSinfo[RELEASE]=`lsb_release --release --short 2> /dev/null`
__resultvar[4]=`lsb_release --codename --short 2> /dev/null` OSinfo[CODENAME]=`lsb_release --codename --short 2> /dev/null`
else else
__resultvar[1]=unknown OSinfo[DERIVATIVE]=unknown
__resultvar[3]=`cat /etc/debian_version` OSinfo[RELEASE]=`cat /etc/debian_version`
__resultvar[4]=unknown OSinfo[CODENAME]=unknown
fi fi
elif [ -f /etc/UnitedLinux-release ]; then elif [ -f /etc/UnitedLinux-release ]; then
__resultvar[0]="united" echo DISTRIBUTION="united"
__resultvar[3]=`cat /etc/UnitedLinux-release` echo VERSION=`cat /etc/UnitedLinux-release`
elif [ -r /etc/init.d/functions.sh ]; then elif [ -r /etc/init.d/functions.sh ]; then
# TODO - not tested # TODO - not tested
source /etc/init.d/functions.sh source /etc/init.d/functions.sh
[ zz`type -t ebegin 2>/dev/null` == "zzfunction" ] && __resultvar[0]="gentoo" [ zz`type -t ebegin 2>/dev/null` == "zzfunction" ] && echo DISTRIBUTION="gentoo"
fi fi
declare -p __resultvar[OS]
} }

View File

@@ -18,5 +18,5 @@ fi
detect_os OS detect_os
declare -p OS declare -p OSinfo