FreeBSD/Linux Kernel Cross Reference
sys/conf/osrelease.sh
1 #!/bin/sh
2 #
3 # $NetBSD: osrelease.sh,v 1.122 2012/02/16 23:56:57 christos Exp $
4 #
5 # Copyright (c) 1997 The NetBSD Foundation, Inc.
6 # All rights reserved.
7 #
8 # This code is derived from software contributed to The NetBSD Foundation
9 # by Luke Mewburn.
10 #
11 # Redistribution and use in source and binary forms, with or without
12 # modification, are permitted provided that the following conditions
13 # are met:
14 # 1. Redistributions of source code must retain the above copyright
15 # notice, this list of conditions and the following disclaimer.
16 # 2. Redistributions in binary form must reproduce the above copyright
17 # notice, this list of conditions and the following disclaimer in the
18 # documentation and/or other materials provided with the distribution.
19 #
20 # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
21 # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22 # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
24 # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 # POSSIBILITY OF SUCH DAMAGE.
31 #
32
33 # We use the number specified in <sys/param.h>
34
35 path="$0"
36 [ "${path#/*}" = "$path" ] && path="./$path"
37 exec < ${path%/*}/../sys/param.h
38
39 # Search for line
40 # #define __NetBSD_Version__ <ver_num> /* NetBSD <ver_text> */
41 #
42 # <ver_num> and <ver_text> should match!
43
44 while
45 read define ver_tag rel_num comment_start NetBSD rel_text rest || exit 1
46 do
47 [ "$define" = "#define" ] || continue;
48 [ "$ver_tag" = "__NetBSD_Version__" ] || continue
49 break
50 done
51
52 # default: return MM.mm.pp
53 # -m: return MM, representing only the major number; however, for -current,
54 # return the next major number (e.g. for 5.99.nn, return 6)
55 # -n: return MM.mm
56 # -s: return MMmmpp (no dots)
57 # -k: return MM.mm on release branch, MM.mm.pp on current.
58
59 option="$1"
60
61 # ${rel_num} is [M]Mmm00pp00
62 rel_num=${rel_num%??}
63 rel_MMmm=${rel_num%????}
64 rel_MM=${rel_MMmm%??}
65 rel_mm=${rel_MMmm#${rel_MM}}
66 # rel_pp=${rel_num#${rel_MMmm}00}
67
68 # Get patch from text version
69 IFS=.
70 set -- - $rel_text
71 beta=${3#[0-9]}
72 beta=${beta#[0-9]}
73 shift 3
74 IFS=' '
75 set -- $rel_MM ${rel_mm#0}$beta $*
76
77 case "$option" in
78 -k)
79 if [ ${rel_mm#0} = 99 ]
80 then
81 IFS=.
82 echo "$*"
83 else
84 echo "${rel_MM}.${rel_mm#0}"
85 fi
86 ;;
87
88 -m)
89 echo "$(((${rel_MMmm}+1)/100))"
90 ;;
91 -n)
92 echo "${rel_MM}.${rel_mm#0}"
93 ;;
94 -s)
95 IFS=
96 echo "$*"
97 ;;
98 *)
99 IFS=.
100 echo "$*"
101 ;;
102 esac
Cache object: 42317d5ec9c829f9c159c2862b56f0ec
|