Home | History | Annotate | Line # | Download | only in scripts
cvo.sh revision 1.1.1.1.12.2
      1 #! /bin/sh
      2 
      3 # Copyright 2002, 2009, 2010 Harlan Stenn.  Used by NTP with permission.
      4 # Author: Harlan Stenn <harlan+cvo (at] pfcs.com>
      5 
      6 # Possible output formats:
      7 #
      8 # CVO=...		Shell variable
      9 # CVO=... ; export CVO	Old-style exported envariable
     10 # export CVO=...	New-style exported envariable
     11 # setenv CVO ...	csh-style exported envariable
     12 
     13 TS="$*"
     14 
     15 CVO_raw=`config.guess`
     16 CVO=$CVO_raw
     17 
     18 set 1 `echo $CVO | tr '-' ' '`
     19 shift
     20 
     21 case "$#" in
     22  4) # eg: i686-pc-linux-gnu
     23     CVO_CPU=$1
     24     CVO_VENDOR=$2
     25     cvo_KERN=$3			# Note the capitalization...
     26     CVO_OS=$4
     27     case "$cvo_KERN" in
     28      linux)			# Braindamage.  We want OS, not kernel info
     29 	if lsb_release > /dev/null 2>&1
     30 	then
     31 	    CVO_OS=`lsb_release --id --short | tr '[:upper:]' '[:lower:]'`
     32 	    CVO_OS="$CVO_OS`lsb_release --release --short`"
     33 	elif test -f /etc/debian_version
     34 	then
     35 	    set `cat /etc/debian_version`
     36 	    CVO_OS=debian$1
     37 	    CVO_KOSVER=`uname -r`
     38 	elif test -f /etc/mandrake-release
     39 	then
     40 	    set `cat /etc/mandrake-release`
     41 	    CVO_OS=mandrake$4
     42 	    CVO_KOSVER=`uname -r`
     43 	elif test -f /etc/redhat-release
     44 	then
     45 	    set `cat /etc/redhat-release`
     46 	    case "$1" in
     47 	     CentOS)
     48 	        CVO_OS=centos$3
     49 	        ;;
     50 	     Fedora)
     51 	        CVO_OS=fedora$3
     52 	        ;;
     53 	    *)
     54 		case "$3" in
     55 		 Enterprise)
     56 		    CVO_OS=redhat$7.E
     57 		    ;;
     58 		 Linux)
     59 		    CVO_OS=redhat$5
     60 		    ;;
     61 		esac
     62 		;;
     63 	    esac
     64 	    CVO_KOSVER=`uname -r`
     65 	elif test -f /etc/slackware-version
     66 	then
     67 	    set `cat /etc/slackware-version`
     68 	    CVO_OS=slackware$2
     69 	    CVO_KOSVER=`uname -r`
     70 	elif test -f /etc/SuSE-release
     71 	then
     72 	    set `cat /etc/SuSE-release`
     73 	    CVO_OS=suse$9
     74 	    CVO_KOSVER=`uname -r`
     75 	else
     76 	    CVO_OS=$cvo_KERN`uname -r`
     77 
     78 	fi
     79 	;;
     80      nto)	# QNX
     81 	CVO_KOSVER=`uname -r`
     82 	;;
     83      *)
     84 	echo "gronk - I don't understand <$CVO>!"
     85 	exit 1
     86 	;;
     87     esac
     88     ;;
     89  3) CVO_CPU=$1
     90     CVO_VENDOR=$2
     91     CVO_OS=$3
     92     ;;
     93  *) echo "gronk - config.guess returned $# pieces, not 3 pieces!"
     94     exit 1
     95     ;;
     96 esac
     97 
     98 case "$CVO_OS" in
     99  cygwin)
    100     # Decisions, decisions.
    101     # uname -r is the cygwin version #, eg: 1.3.3(0.46/3/2)
    102     # uname -s returns something like CYGWIN_NT-5.0
    103     CVO_OS="$CVO_OS`uname -r | sed 's/(.*//'`"
    104     ;;
    105 esac
    106 set `echo $CVO_OS | sed 's/\([0-9]\)/ \1/'`
    107 
    108 case "$#" in
    109  2) ;;
    110  *) echo "gronk - <$CVO_OS> expanded to $#, not 2 pieces!"
    111     exit 1
    112     ;;
    113 esac
    114 
    115 CVO_OSNAME=$1
    116 CVO_OSVER=$2
    117 
    118 case "$CVO_OSNAME" in
    119  solaris)
    120     CVO_KOSVER=`uname -v`
    121     ;;
    122 esac
    123 
    124 CVO=$CVO_CPU-$CVO_VENDOR-$CVO_OS
    125 
    126 case "$TS" in
    127  '')
    128     set | grep CVO
    129     ;;
    130  *)
    131     # keys['cvo'] = "cvo.CVO['CVO']"
    132     TS=`echo $TS | sed -e s/@cvo@/$CVO/g`
    133     # keys['cpu'] = "cvo.CVO['CVO_CPU']"
    134     TS=`echo $TS | sed -e s/@cpu@/$CVO_CPU/g`
    135     # keys['kosver'] = "cvo.CVO['CVO_KOSVER']"
    136     TS=`echo $TS | sed -e s/@kosver@/$CVO_KOSVER/g`
    137     # keys['os'] = "cvo.CVO['CVO_OS']"
    138     TS=`echo $TS | sed -e s/@os@/$CVO_OS/g`
    139     # keys['osname'] = "cvo.CVO['CVO_OSNAME']"
    140     TS=`echo $TS | sed -e s/@osname@/$CVO_OSNAME/g`
    141     # keys['osver'] = "cvo.CVO['CVO_OSVER']"
    142     TS=`echo $TS | sed -e s/@osver@/$CVO_OSVER/g`
    143     # keys['vendor'] = "cvo.CVO['CVO_VENDOR']"
    144     TS=`echo $TS | sed -e s/@vendor@/$CVO_VENDOR/g`
    145     # keys['raw'] = "cvo.CVO['CVO_raw']"
    146     TS=`echo $TS | sed -e s/@raw@/$CVO_raw/g`
    147 
    148     echo $TS
    149     ;;
    150 esac
    151