]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/ntp/sntp/scripts/cvo.sh
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / ntp / sntp / scripts / cvo.sh
1 #! /bin/sh
2
3 # Copyright 2002, 2009, 2010 Harlan Stenn.  Used by NTP with permission.
4 # Author: Harlan Stenn <harlan+cvo@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                 case "$2" in
49                  Linux)
50                     CVO_OS=centos$4
51                     ;;
52                  *) CVO_OS=centos$3
53                     ;;
54                 esac
55                 ;;
56              Fedora)
57                 CVO_OS=fedora$3
58                 ;;
59             *)
60                 case "$3" in
61                  Enterprise)
62                     CVO_OS=redhat$7.E
63                     ;;
64                  Linux)
65                     CVO_OS=redhat$5
66                     ;;
67                 esac
68                 ;;
69             esac
70             CVO_KOSVER=`uname -r`
71         elif test -f /etc/slackware-version
72         then
73             set `cat /etc/slackware-version`
74             CVO_OS=slackware$2
75             CVO_KOSVER=`uname -r`
76         elif test -f /etc/SuSE-release
77         then
78             set `cat /etc/SuSE-release`
79             CVO_OS=suse$9
80             CVO_KOSVER=`uname -r`
81         else
82             CVO_OS=$cvo_KERN`uname -r`
83
84         fi
85         ;;
86      nto)       # QNX
87         CVO_KOSVER=`uname -r`
88         ;;
89      *)
90         echo "gronk - I don't understand <$CVO>!"
91         exit 1
92         ;;
93     esac
94     ;;
95  3) CVO_CPU=$1
96     CVO_VENDOR=$2
97     CVO_OS=$3
98     ;;
99  *) echo "gronk - config.guess returned $# pieces, not 3 pieces!"
100     exit 1
101     ;;
102 esac
103
104 case "$CVO_OS" in
105  cygwin)
106     # Decisions, decisions.
107     # uname -r is the cygwin version #, eg: 1.3.3(0.46/3/2)
108     # uname -s returns something like CYGWIN_NT-5.0
109     CVO_OS="$CVO_OS`uname -r | sed 's/(.*//'`"
110     ;;
111 esac
112 set `echo $CVO_OS | sed 's/\([0-9]\)/ \1/'`
113
114 case "$#" in
115  2) ;;
116  *) echo "gronk - <$CVO_OS> expanded to $#, not 2 pieces!"
117     exit 1
118     ;;
119 esac
120
121 CVO_OSNAME=$1
122 CVO_OSVER=$2
123
124 case "$CVO_OSNAME" in
125  solaris)
126     CVO_KOSVER=`uname -v`
127     ;;
128 esac
129
130 CVO=$CVO_CPU-$CVO_VENDOR-$CVO_OS
131
132 case "$TS" in
133  '')
134     set | grep CVO
135     ;;
136  *)
137     # keys['cvo'] = "cvo.CVO['CVO']"
138     TS=`echo $TS | sed -e s/@cvo@/$CVO/g`
139     # keys['cpu'] = "cvo.CVO['CVO_CPU']"
140     TS=`echo $TS | sed -e s/@cpu@/$CVO_CPU/g`
141     # keys['kosver'] = "cvo.CVO['CVO_KOSVER']"
142     TS=`echo $TS | sed -e s/@kosver@/$CVO_KOSVER/g`
143     # keys['os'] = "cvo.CVO['CVO_OS']"
144     TS=`echo $TS | sed -e s/@os@/$CVO_OS/g`
145     # keys['osname'] = "cvo.CVO['CVO_OSNAME']"
146     TS=`echo $TS | sed -e s/@osname@/$CVO_OSNAME/g`
147     # keys['osver'] = "cvo.CVO['CVO_OSVER']"
148     TS=`echo $TS | sed -e s/@osver@/$CVO_OSVER/g`
149     # keys['vendor'] = "cvo.CVO['CVO_VENDOR']"
150     TS=`echo $TS | sed -e s/@vendor@/$CVO_VENDOR/g`
151     # keys['raw'] = "cvo.CVO['CVO_raw']"
152     TS=`echo $TS | sed -e s/@raw@/$CVO_raw/g`
153
154     echo $TS
155     ;;
156 esac