Fri, 16 Jan 2015 18:13:44 +0100
Integrate suggestion from review to improve consistency with existing code.
1 #!/usr/bin/ksh -p
2 #
3 # Copyright 2005 Sun Microsystems, Inc. All rights reserved.
4 # Use is subject to license terms.
5 #
6 # This Source Code Form is subject to the terms of the Mozilla Public
7 # License, v. 2.0. If a copy of the MPL was not distributed with this
8 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 #
10 #ident "$Id$"
11 #
12 # Simple script which builds the awk_pkginfo awk script. This awk script
13 # is used to convert the pkginfo.tmpl files into pkginfo files
14 # for the build.
15 #
17 usage()
18 {
19 cat <<-EOF
20 usage: bld_awk_pkginfo -p <prodver> -m <mach> -o <awk_script> [-v <version>]
21 EOF
22 }
24 #
25 # Awk strings
26 #
27 # two VERSION patterns: one for Dewey decimal, one for Dewey plus ,REV=n
28 # the first has one '=' the second has two or more '='
29 #
30 VERSION1="VERSION=[^=]*$"
31 VERSION2="VERSION=[^=]*=.*$"
32 PRODVERS="^SUNW_PRODVERS="
33 ARCH='ARCH=\"ISA\"'
35 #
36 # parse command line
37 #
38 mach=""
39 prodver=""
40 awk_script=""
41 version="NSPRVERS"
43 while getopts o:p:m:v: c
44 do
45 case $c in
46 o)
47 awk_script=$OPTARG
48 ;;
49 m)
50 mach=$OPTARG
51 ;;
52 p)
53 prodver=$OPTARG
54 ;;
55 v)
56 version=$OPTARG
57 ;;
58 \?)
59 usage
60 exit 1
61 ;;
62 esac
63 done
65 if [[ ( -z $prodver ) || ( -z $mach ) || ( -z $awk_script ) ]]
66 then
67 usage
68 exit 1
69 fi
71 if [[ -f $awk_script ]]
72 then
73 rm -f $awk_script
74 fi
76 #
77 # Build REV= field based on date
78 #
79 rev=$(date "+%Y.%m.%d.%H.%M")
81 #
82 # Build awk script which will process all the
83 # pkginfo.tmpl files.
84 #
85 # the first VERSION pattern is replaced with a leading quotation mark
86 #
87 rm -f $awk_script
88 cat << EOF > $awk_script
89 /$VERSION1/ {
90 sub(/\=[^=]*$/,"=\"$rev\"")
91 print
92 next
93 }
94 /$VERSION2/ {
95 sub(/\=[^=]*$/,"=$rev\"")
96 sub(/NSPRVERS/,"$version")
97 print
98 next
99 }
100 /$PRODVERS/ {
101 printf "SUNW_PRODVERS=\"%s\"\n", "$prodver"
102 next
103 }
104 /$ARCH/ {
105 printf "ARCH=\"%s\"\n", "$mach"
106 next
107 }
108 { print }
109 EOF