diff --git a/default.inc b/default.inc index ab8fbf6..3db4709 100755 --- a/default.inc +++ b/default.inc @@ -60,53 +60,50 @@ redhat_derivative () { } detect_os () { - #local -n __resultvar="$1" || return 1 - declare -A __resultvar - __resultvar[MACH]=`uname -m` + local -n __resultvar="$1" || return 1 + __resultvar[0]=`uname -m` if [ -f /etc/redhat-release ] ; then - echo DISTRIBUTION=redhat + __resultvar[1]=redhat local FILE=/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` + 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` elif [ -s /etc/slackware-version ]; then - echo DISTRIBUTION="slackware" + __resultvar[1]="slackware" elif [ -f /etc/SUSE-release ] ; then # TODO - not tested - 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'` + __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'` elif [ -f /etc/mandrake-release ] ; then # TODO - not tested - 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 + __resultvar[1]=mandrake + __resultvar[2]=`cat /etc/mandrake-release | sed s/.*\(// | sed s/\)//` + __resultvar[3]=`cat /etc/mandrake-release | sed s/.*release\ // | sed s/\ .*//` elif [ -f /etc/debian_version ] ; then - __resultvar[DISTRIBUTION]=debian + __resultvar[1]=debian if which lsb_release 2>&1 > /dev/null ; then - __resultvar[DERIVATIVE]=`lsb_release --id --short 2> /dev/null` - __resultvar[RELEASE]=`lsb_release --release --short 2> /dev/null` - __resultvar[CODENAME]=`lsb_release --codename --short 2> /dev/null` + __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` else - __resultvar[DERIVATIVE]=unknown - __resultvar[RELEASE]=`cat /etc/debian_version` - __resultvar[CODENAME]=unknown + __resultvar[1]=unknown + __resultvar[3]=`cat /etc/debian_version` + __resultvar[4]=unknown fi elif [ -f /etc/UnitedLinux-release ]; then - echo DISTRIBUTION="united" - echo VERSION=`cat /etc/UnitedLinux-release` + __resultvar[0]="united" + __resultvar[3]=`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" ] && echo DISTRIBUTION="gentoo" + [ zz`type -t ebegin 2>/dev/null` == "zzfunction" ] && __resultvar[0]="gentoo" fi - declare -p $__resultvar }