|
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 # Simple script which builds the awk_pkginfo awk script. This awk script |
|
11 # is used to convert the pkginfo.tmpl files into pkginfo files |
|
12 # for the build. |
|
13 # |
|
14 |
|
15 usage() |
|
16 { |
|
17 cat <<-EOF |
|
18 usage: bld_awk_pkginfo -p <prodver> -m <mach> -o <awk_script> [-v <version>] |
|
19 EOF |
|
20 } |
|
21 |
|
22 # |
|
23 # Awk strings |
|
24 # |
|
25 # two VERSION patterns: one for Dewey decimal, one for Dewey plus ,REV=n |
|
26 # the first has one '=' the second has two or more '=' |
|
27 # |
|
28 VERSION1="VERSION=[^=]*$" |
|
29 VERSION2="VERSION=[^=]*=.*$" |
|
30 PRODVERS="^SUNW_PRODVERS=" |
|
31 ARCH='ARCH=\"ISA\"' |
|
32 |
|
33 # |
|
34 # parse command line |
|
35 # |
|
36 mach="" |
|
37 prodver="" |
|
38 awk_script="" |
|
39 version="NSSVERS" |
|
40 |
|
41 while getopts o:p:m:v: c |
|
42 do |
|
43 case $c in |
|
44 o) |
|
45 awk_script=$OPTARG |
|
46 ;; |
|
47 m) |
|
48 mach=$OPTARG |
|
49 ;; |
|
50 p) |
|
51 prodver=$OPTARG |
|
52 ;; |
|
53 v) |
|
54 version=$OPTARG |
|
55 ;; |
|
56 \?) |
|
57 usage |
|
58 exit 1 |
|
59 ;; |
|
60 esac |
|
61 done |
|
62 |
|
63 if [[ ( -z $prodver ) || ( -z $mach ) || ( -z $awk_script ) ]] |
|
64 then |
|
65 usage |
|
66 exit 1 |
|
67 fi |
|
68 |
|
69 if [[ -f $awk_script ]] |
|
70 then |
|
71 rm -f $awk_script |
|
72 fi |
|
73 |
|
74 # |
|
75 # Build REV= field based on date |
|
76 # |
|
77 rev=$(date "+%Y.%m.%d.%H.%M") |
|
78 |
|
79 # |
|
80 # Build awk script which will process all the |
|
81 # pkginfo.tmpl files. |
|
82 # |
|
83 # the first VERSION pattern is replaced with a leading quotation mark |
|
84 # |
|
85 rm -f $awk_script |
|
86 cat << EOF > $awk_script |
|
87 /$VERSION1/ { |
|
88 sub(/\=[^=]*$/,"=\"$rev\"") |
|
89 print |
|
90 next |
|
91 } |
|
92 /$VERSION2/ { |
|
93 sub(/\=[^=]*$/,"=$rev\"") |
|
94 sub(/NSSVERS/,"$version") |
|
95 print |
|
96 next |
|
97 } |
|
98 /$PRODVERS/ { |
|
99 printf "SUNW_PRODVERS=\"%s\"\n", "$prodver" |
|
100 next |
|
101 } |
|
102 /$ARCH/ { |
|
103 printf "ARCH=\"%s\"\n", "$mach" |
|
104 next |
|
105 } |
|
106 { print } |
|
107 EOF |