diff options
Diffstat (limited to 'sntp/scripts/cvo.sh')
-rwxr-xr-x | sntp/scripts/cvo.sh | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/sntp/scripts/cvo.sh b/sntp/scripts/cvo.sh new file mode 100755 index 0000000..a8d00ef --- /dev/null +++ b/sntp/scripts/cvo.sh @@ -0,0 +1,150 @@ +#! /bin/sh + +# Copyright 2002, 2009, 2010 Harlan Stenn. Used by NTP with permission. +# Author: Harlan Stenn <harlan+cvo@pfcs.com> + +# Possible output formats: +# +# CVO=... Shell variable +# CVO=... ; export CVO Old-style exported envariable +# export CVO=... New-style exported envariable +# setenv CVO ... csh-style exported envariable + +TS="$*" + +CVO_raw=`config.guess` +CVO=$CVO_raw + +set 1 `echo $CVO | tr '-' ' '` +shift + +case "$#" in + 4) # eg: i686-pc-linux-gnu + CVO_CPU=$1 + CVO_VENDOR=$2 + cvo_KERN=$3 # Note the capitalization... + CVO_OS=$4 + case "$cvo_KERN" in + linux) # Braindamage. We want OS, not kernel info + if lsb_release > /dev/null 2>&1 + then + CVO_OS=`lsb_release --id --short | tr '[:upper:]' '[:lower:]'` + CVO_OS="$CVO_OS`lsb_release --release --short`" + elif test -f /etc/debian_version + then + set `cat /etc/debian_version` + CVO_OS=debian$1 + CVO_KOSVER=`uname -r` + elif test -f /etc/mandrake-release + then + set `cat /etc/mandrake-release` + CVO_OS=mandrake$4 + CVO_KOSVER=`uname -r` + elif test -f /etc/redhat-release + then + set `cat /etc/redhat-release` + case "$1" in + CentOS) + CVO_OS=centos$3 + ;; + Fedora) + CVO_OS=fedora$3 + ;; + *) + case "$3" in + Enterprise) + CVO_OS=redhat$7.E + ;; + Linux) + CVO_OS=redhat$5 + ;; + esac + ;; + esac + CVO_KOSVER=`uname -r` + elif test -f /etc/slackware-version + then + set `cat /etc/slackware-version` + CVO_OS=slackware$2 + CVO_KOSVER=`uname -r` + elif test -f /etc/SuSE-release + then + set `cat /etc/SuSE-release` + CVO_OS=suse$9 + CVO_KOSVER=`uname -r` + else + CVO_OS=$cvo_KERN`uname -r` + + fi + ;; + nto) # QNX + CVO_KOSVER=`uname -r` + ;; + *) + echo "gronk - I don't understand <$CVO>!" + exit 1 + ;; + esac + ;; + 3) CVO_CPU=$1 + CVO_VENDOR=$2 + CVO_OS=$3 + ;; + *) echo "gronk - config.guess returned $# pieces, not 3 pieces!" + exit 1 + ;; +esac + +case "$CVO_OS" in + cygwin) + # Decisions, decisions. + # uname -r is the cygwin version #, eg: 1.3.3(0.46/3/2) + # uname -s returns something like CYGWIN_NT-5.0 + CVO_OS="$CVO_OS`uname -r | sed 's/(.*//'`" + ;; +esac +set `echo $CVO_OS | sed 's/\([0-9]\)/ \1/'` + +case "$#" in + 2) ;; + *) echo "gronk - <$CVO_OS> expanded to $#, not 2 pieces!" + exit 1 + ;; +esac + +CVO_OSNAME=$1 +CVO_OSVER=$2 + +case "$CVO_OSNAME" in + solaris) + CVO_KOSVER=`uname -v` + ;; +esac + +CVO=$CVO_CPU-$CVO_VENDOR-$CVO_OS + +case "$TS" in + '') + set | grep CVO + ;; + *) + # keys['cvo'] = "cvo.CVO['CVO']" + TS=`echo $TS | sed -e s/@cvo@/$CVO/g` + # keys['cpu'] = "cvo.CVO['CVO_CPU']" + TS=`echo $TS | sed -e s/@cpu@/$CVO_CPU/g` + # keys['kosver'] = "cvo.CVO['CVO_KOSVER']" + TS=`echo $TS | sed -e s/@kosver@/$CVO_KOSVER/g` + # keys['os'] = "cvo.CVO['CVO_OS']" + TS=`echo $TS | sed -e s/@os@/$CVO_OS/g` + # keys['osname'] = "cvo.CVO['CVO_OSNAME']" + TS=`echo $TS | sed -e s/@osname@/$CVO_OSNAME/g` + # keys['osver'] = "cvo.CVO['CVO_OSVER']" + TS=`echo $TS | sed -e s/@osver@/$CVO_OSVER/g` + # keys['vendor'] = "cvo.CVO['CVO_VENDOR']" + TS=`echo $TS | sed -e s/@vendor@/$CVO_VENDOR/g` + # keys['raw'] = "cvo.CVO['CVO_raw']" + TS=`echo $TS | sed -e s/@raw@/$CVO_raw/g` + + echo $TS + ;; +esac |