cvo.sh revision 275970
1275970Scy#! /bin/sh
2275970Scy
3275970Scy# Copyright 2002, 2009, 2010 Harlan Stenn.  Used by NTP with permission.
4275970Scy# Author: Harlan Stenn <harlan+cvo@pfcs.com>
5275970Scy
6275970Scy# Possible output formats:
7275970Scy#
8275970Scy# CVO=...		Shell variable
9275970Scy# CVO=... ; export CVO	Old-style exported envariable
10275970Scy# export CVO=...	New-style exported envariable
11275970Scy# setenv CVO ...	csh-style exported envariable
12275970Scy
13275970ScyTS="$*"
14275970Scy
15275970ScyCVO_raw=`config.guess`
16275970ScyCVO=$CVO_raw
17275970Scy
18275970Scyset 1 `echo $CVO | tr '-' ' '`
19275970Scyshift
20275970Scy
21275970Scycase "$#" in
22275970Scy 4) # eg: i686-pc-linux-gnu
23275970Scy    CVO_CPU=$1
24275970Scy    CVO_VENDOR=$2
25275970Scy    cvo_KERN=$3			# Note the capitalization...
26275970Scy    CVO_OS=$4
27275970Scy    case "$cvo_KERN" in
28275970Scy     linux)			# Braindamage.  We want OS, not kernel info
29275970Scy	if lsb_release > /dev/null 2>&1
30275970Scy	then
31275970Scy	    CVO_OS=`lsb_release --id --short | tr '[:upper:]' '[:lower:]'`
32275970Scy	    CVO_OS="$CVO_OS`lsb_release --release --short`"
33275970Scy	elif test -f /etc/debian_version
34275970Scy	then
35275970Scy	    set `cat /etc/debian_version`
36275970Scy	    CVO_OS=debian$1
37275970Scy	    CVO_KOSVER=`uname -r`
38275970Scy	elif test -f /etc/mandrake-release
39275970Scy	then
40275970Scy	    set `cat /etc/mandrake-release`
41275970Scy	    CVO_OS=mandrake$4
42275970Scy	    CVO_KOSVER=`uname -r`
43275970Scy	elif test -f /etc/redhat-release
44275970Scy	then
45275970Scy	    set `cat /etc/redhat-release`
46275970Scy	    case "$1" in
47275970Scy	     CentOS)
48275970Scy	        CVO_OS=centos$3
49275970Scy	        ;;
50275970Scy	     Fedora)
51275970Scy	        CVO_OS=fedora$3
52275970Scy	        ;;
53275970Scy	    *)
54275970Scy		case "$3" in
55275970Scy		 Enterprise)
56275970Scy		    CVO_OS=redhat$7.E
57275970Scy		    ;;
58275970Scy		 Linux)
59275970Scy		    CVO_OS=redhat$5
60275970Scy		    ;;
61275970Scy		esac
62275970Scy		;;
63275970Scy	    esac
64275970Scy	    CVO_KOSVER=`uname -r`
65275970Scy	elif test -f /etc/slackware-version
66275970Scy	then
67275970Scy	    set `cat /etc/slackware-version`
68275970Scy	    CVO_OS=slackware$2
69275970Scy	    CVO_KOSVER=`uname -r`
70275970Scy	elif test -f /etc/SuSE-release
71275970Scy	then
72275970Scy	    set `cat /etc/SuSE-release`
73275970Scy	    CVO_OS=suse$9
74275970Scy	    CVO_KOSVER=`uname -r`
75275970Scy	else
76275970Scy	    CVO_OS=$cvo_KERN`uname -r`
77275970Scy
78275970Scy	fi
79275970Scy	;;
80275970Scy     nto)	# QNX
81275970Scy	CVO_KOSVER=`uname -r`
82275970Scy	;;
83275970Scy     *)
84275970Scy	echo "gronk - I don't understand <$CVO>!"
85275970Scy	exit 1
86275970Scy	;;
87275970Scy    esac
88275970Scy    ;;
89275970Scy 3) CVO_CPU=$1
90275970Scy    CVO_VENDOR=$2
91275970Scy    CVO_OS=$3
92275970Scy    ;;
93275970Scy *) echo "gronk - config.guess returned $# pieces, not 3 pieces!"
94275970Scy    exit 1
95275970Scy    ;;
96275970Scyesac
97275970Scy
98275970Scycase "$CVO_OS" in
99275970Scy cygwin)
100275970Scy    # Decisions, decisions.
101275970Scy    # uname -r is the cygwin version #, eg: 1.3.3(0.46/3/2)
102275970Scy    # uname -s returns something like CYGWIN_NT-5.0
103275970Scy    CVO_OS="$CVO_OS`uname -r | sed 's/(.*//'`"
104275970Scy    ;;
105275970Scyesac
106275970Scyset `echo $CVO_OS | sed 's/\([0-9]\)/ \1/'`
107275970Scy
108275970Scycase "$#" in
109275970Scy 2) ;;
110275970Scy *) echo "gronk - <$CVO_OS> expanded to $#, not 2 pieces!"
111275970Scy    exit 1
112275970Scy    ;;
113275970Scyesac
114275970Scy
115275970ScyCVO_OSNAME=$1
116275970ScyCVO_OSVER=$2
117275970Scy
118275970Scycase "$CVO_OSNAME" in
119275970Scy solaris)
120275970Scy    CVO_KOSVER=`uname -v`
121275970Scy    ;;
122275970Scyesac
123275970Scy
124275970ScyCVO=$CVO_CPU-$CVO_VENDOR-$CVO_OS
125275970Scy
126275970Scycase "$TS" in
127275970Scy '')
128275970Scy    set | grep CVO
129275970Scy    ;;
130275970Scy *)
131275970Scy    # keys['cvo'] = "cvo.CVO['CVO']"
132275970Scy    TS=`echo $TS | sed -e s/@cvo@/$CVO/g`
133275970Scy    # keys['cpu'] = "cvo.CVO['CVO_CPU']"
134275970Scy    TS=`echo $TS | sed -e s/@cpu@/$CVO_CPU/g`
135275970Scy    # keys['kosver'] = "cvo.CVO['CVO_KOSVER']"
136275970Scy    TS=`echo $TS | sed -e s/@kosver@/$CVO_KOSVER/g`
137275970Scy    # keys['os'] = "cvo.CVO['CVO_OS']"
138275970Scy    TS=`echo $TS | sed -e s/@os@/$CVO_OS/g`
139275970Scy    # keys['osname'] = "cvo.CVO['CVO_OSNAME']"
140275970Scy    TS=`echo $TS | sed -e s/@osname@/$CVO_OSNAME/g`
141275970Scy    # keys['osver'] = "cvo.CVO['CVO_OSVER']"
142275970Scy    TS=`echo $TS | sed -e s/@osver@/$CVO_OSVER/g`
143275970Scy    # keys['vendor'] = "cvo.CVO['CVO_VENDOR']"
144275970Scy    TS=`echo $TS | sed -e s/@vendor@/$CVO_VENDOR/g`
145275970Scy    # keys['raw'] = "cvo.CVO['CVO_raw']"
146275970Scy    TS=`echo $TS | sed -e s/@raw@/$CVO_raw/g`
147275970Scy
148275970Scy    echo $TS
149275970Scy    ;;
150275970Scyesac
151