From 415972a1448ff1475fa06af4a881c7ebb8f03644 Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Sat, 2 Feb 2019 10:17:59 -0600 Subject: [PATCH] update --- default.inc | 59 +++++++++++++++++++++++++++-------------------------- test.sh | 4 ++-- 2 files changed, 32 insertions(+), 31 deletions(-) diff --git a/default.inc b/default.inc index 5ee3b23..0e17389 100755 --- a/default.inc +++ b/default.inc @@ -60,51 +60,52 @@ redhat_derivative () { } detect_os () { - local -n __resultvar="$1" || return 1 - __resultvar[0]=`uname -m` + #local -n OSinfo="$1" || return 1 + declare -A OSinfo + OSinfo[MACH]=`uname -m` if [ -f /etc/redhat-release ] ; then - __resultvar[1]=redhat + echo DISTRIBUTION=redhat local FILE=/etc/redhat-release - grep -i 'red.*hat.*enterprise.*linux' $FILE 2>&1 > /dev/null && { __resultvar[2]=rhel; return; } - grep -i 'red.*hat.*linux' $FILE 2>&1 > /dev/null && { __resultvar[2]=rh; return; } - grep -i 'cern.*e.*linux' $FILE 2>&1 > /dev/null && { __resultvar[2]=cel; return; } - grep -i 'scientific linux cern' $FILE 2>&1 > /dev/null && { __resultvar[2]=slc; return; } - grep -i 'centos' $FILE 2>&1 > /dev/null && { __resultvar[2]=centos; return; } - #__resultvar[2]=unknown - __resultvar[3]=`tr -d 'a-zA-Z [](){}' < /etc/redhat-release` + 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 && { echo DERIVATIVE=rh; 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 && { echo DERIVATIVE=slc; return; } + grep -i 'centos' $FILE 2>&1 > /dev/null && { echo DERIVATIVE=centos; return; } + #echo DERIVATIVE=unknown + echo RELEASE=`tr -d 'a-zA-Z [](){}' < /etc/redhat-release` elif [ -s /etc/slackware-version ]; then - __resultvar[1]="slackware" + echo DISTRIBUTION="slackware" elif [ -f /etc/SUSE-release ] ; then # TODO - not tested - __resultvar[1]=suse - __resultvar[2]=`cat /etc/SUSE-release | tr "\n" ' '| sed s/VERSION.*//` - __resultvar[3]=`cat /etc/SUSE-release | tr "\n" ' ' | sed s/.*=\ //` - __resultvar[4]=`cat /etc/SuSE-release | grep 'VERSION' | sed -e 's#[^0-9]##g'` + echo DISTRIBUTION=suse + echo PSUEDONAME=`cat /etc/SUSE-release | tr "\n" ' '| sed s/VERSION.*//` + echo REV=`cat /etc/SUSE-release | tr "\n" ' ' | sed s/.*=\ //` + echo VERSION=`cat /etc/SuSE-release | grep 'VERSION' | sed -e 's#[^0-9]##g'` elif [ -f /etc/mandrake-release ] ; then # TODO - not tested - __resultvar[1]=mandrake - __resultvar[2]=`cat /etc/mandrake-release | sed s/.*\(// | sed s/\)//` - __resultvar[3]=`cat /etc/mandrake-release | sed s/.*release\ // | sed s/\ .*//` + echo DISTRIBUTION=mandrake + echo PSUEDONAME=`cat /etc/mandrake-release | sed s/.*\(// | sed s/\)//` + echo REV=`cat /etc/mandrake-release | sed s/.*release\ // | sed s/\ .*//` + echo FAMILY=rh elif [ -f /etc/debian_version ] ; then - __resultvar[1]=debian + OSinfo[DISTRIBUTION]=debian if which lsb_release 2>&1 > /dev/null ; then - __resultvar[2]=`lsb_release --id --short 2> /dev/null` - __resultvar[3]=`lsb_release --release --short 2> /dev/null` - __resultvar[4]=`lsb_release --codename --short 2> /dev/null` + OSinfo[DERIVATIVE]=`lsb_release --id --short 2> /dev/null` + OSinfo[RELEASE]=`lsb_release --release --short 2> /dev/null` + OSinfo[CODENAME]=`lsb_release --codename --short 2> /dev/null` else - __resultvar[1]=unknown - __resultvar[3]=`cat /etc/debian_version` - __resultvar[4]=unknown + OSinfo[DERIVATIVE]=unknown + OSinfo[RELEASE]=`cat /etc/debian_version` + OSinfo[CODENAME]=unknown fi elif [ -f /etc/UnitedLinux-release ]; then - __resultvar[0]="united" - __resultvar[3]=`cat /etc/UnitedLinux-release` + echo DISTRIBUTION="united" + echo VERSION=`cat /etc/UnitedLinux-release` elif [ -r /etc/init.d/functions.sh ]; then # TODO - not tested 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 - declare -p __resultvar[OS] } diff --git a/test.sh b/test.sh index c21acbf..0b9c687 100755 --- a/test.sh +++ b/test.sh @@ -18,5 +18,5 @@ fi -detect_os OS -declare -p OS \ No newline at end of file +detect_os +declare -p OSinfo \ No newline at end of file