Revision: | 1.9 |
Committed: | Tue Aug 22 16:35:38 2006 UTC (18 years, 8 months ago) by eulisse |
Branch: | MAIN |
CVS Tags: | re20080623, forPHEDEX303, forPHEDEX-datasvc100, forPHEDEX302, forPHEDEX301, forPHEDEX300, forPHEDEX300pre14, forPHEDEX300pre13, forPHEDEX300pre12, forPHEDEX300pre11, forPHEDEX-datasvc002, forPHEDEX-datasvc001, forPHEDEX300pre7, forPHEDEX300pre6, forPHEDEX263, forPHEDEX262_cmsbuild2, forPHEDEX262_cmsbuild, forPHEDEX262, forPHEDEX261-slc3, forPHEDEX261, forPHEDEX260-1, forPHEDEX260, ge20071212-phedex, forPHEDEX2542, forPHEDEX2541, forPHEDEX2540, forPHEDEX2536, forPHEDEX2535, forPHEDEX2534, CMSSW_1_3_5, forPHEDEX2533, forPHEDEX2532, CMSSW_1_3_1_HLT6-slc4, CMSSW_1_3_1_HLT6-slc3, dl070627c135, forPHEDEX2531, forPHEDEX253, CMSSW_1_3_1_HLT5-slc4, CMSSW_1_3_1_HLT5-slc3, CMSSW_1_3_1_HLT4-slc4, CMSSW_1_3_1_HLT4-slc3, CMSSW_1_3_4, CMSSW_1_3_1_HLT3-slc4, CMSSW_1_3_1_HLT3-slc3, CMSSW_1_3_3-slc4, CMSSW_1_3_3, CMSSW_1_3_2-slc4, CMSSW_1_3_2, pe20070429-for131hlt2-slc4, pe20070429-for131hlt2-slc3, CMSSW_1_3_1_HLT1-slc3, CMSSW_1_2_6, pe20070426-131hlt1-slc3, CMSSW_1_2_5, forPHEDEX252, forPHEDEX251-micro-pre1, CMSSW_1_2_4, CMSSW_1_3_1, CMSSW_1_3_1-slc4, pe20070408, CMSSW_1_2_3, dl070330, CMSSW_1_3_0-slc4, CMSSW_1_3_0, dl070327, CMSSW_1_3_0_pre6t3, CMSSW_1_3_0_pre6-slc4t2, CMSSW_1_3_0_pre6t2, CMSSW_1_3_0_pre6, CMSSW_1_3_0_pre6-slc4, for120_g4821, forPHEDEX251, POOL_2_4_9-p2-slc4, POOL_2_4_9-p2, nrCMSSW_1_3_0_pre5-m32-slc3, nrCMSSW_1_3_0_pre5-m32, nr20070307_130pre5-m32-slc4, nr20070307_m32, CMSSW_1_3_0_pre5, CMSSW_1_3_0_pre5-slc4, nr070301_amd64m32, CMSSW_1_3_0_pre4-slc4-p1, CMSSW_1_3_0_pre4-p1, CMSSW_1_3_0_pre4, CMSSW_1_3_0_pre4-slc4, CMS_145_2-slc4, CMS_145_2-slc3, sfa160207, CMSSW_1_3_0_pre3-slc4, CMSSW_1_3_0_pre3, sfa120207slc4_p1, sfa120207slc4, sfa120207slc3, dl070211, nr070211_cms144a_2-p1slc4, nr070210_cms144a_2-p1slc4, cms144a_2-p1slc3, forCMS145_2_slc4, forCMS145_2_slc3, cms145pre5-slc4, forCMSSW120g482, cms145pre5-slc3, cms145pre4-slc3, cms145pre3-slc3, cms145pre2-slc3, cms145pre1-slc3, pe20070208, GE20070207, pe20070205b, forPHEDEX250, CMSSW_1_3_0_SLC4_pre2, pe20070205a, pe20070205, CMSSW_1_3_0_pre2, forCMS144_2-slc3, forCMS144_2-slc4, sfa010207-slc4, sfa010207-slc3, forCMSSW121-slc3, forCMSSW122-slc3, cms144slc3p2, cms144slc4p1, cms144slc3p1, cms144spc3p1, sfa300107, sfa390107, sfa290107, CMSSW_1_3_0_SLC4_pre1, CMSSW_1_3_0_pre1, for143hsv1-slc3-p5, for143hsv1-slc4-p5, for143hsv1-slc3-p4, for143hsv1-slc4-p4, for143hsv1-slc4-p3, for143hsv1-slc3-p3, for143hsv1-slc4-p2, for143hsv1-slc3-p2, for143hsv1-slc3-p1, for143hsv1-slc4, for143hsv1-slc3, for143hsv1, test143f_sv1-slc4, forCMSSW120-slc4, forCMSSW120g481, forCMSSW120-slc3, forCMS143f-slc4, forCMS143f-slc3, for120p9, pe20061201c, pe20061201b, pe20061201a, ge200611302202, for120p8-g481p2cms1, for120p8, for112, for120p7, for111, for120p6, cms143a-slc3, for120p5-slc3, forPHEDEX242, for120p5slc4, for120p5slc3, forCMS143_2_rootfix, forCMS143_2_slc4, forCMS143_2_slc3, sfa061106pm, sfa061106am, sa20061106, sfa031106pm, sfa031106, sfa021106, sa20061002, for120p4, for120p3, for120p2-slc4-rc1, forPHEDEX241, for106, ge20061020-for106, pre-for106, for120p2, for105, for104, for110, for120p1, for110p4, for103, for110p3, for102, pe060927, for101-take3, for101-take2, for101, forGeant481, for110p2, CMSSW_1_0_0, for110p5, for110p1, for084, for100p4, argiro-20060904-for100p4, for092, for137a_pre083_take2, pe20060827a, for137a_pre083, ge20060825, for100p2 |
Branch point for: | lcgaa_for120p6_branch, lcg47branch |
Changes since 1.8: | +3 -2 lines |
Log Message: | clcommit added as an alias to avoid pollution of the environment. |
# | Content |
---|---|
1 | ### RPM cms cms-cvs-utils 1.0 |
2 | ## INITENV ALIAS_SH project source %i/bin/projch.sh |
3 | ## INITENV ALIAS_SH cmscvsroot source %i/bin/cmscvsroot.sh |
4 | ## INITENV ALIAS_CSH project source %i/bin/projch.csh |
5 | ## INITENV ALIAS_CSH cmscvsroot source %i/bin/cmscvsroot.csh |
6 | ## INITENV ALIAS clcommit %i/bin/clcommit.sh |
7 | Source: none |
8 | |
9 | %prep |
10 | %build |
11 | %install |
12 | mkdir -p %instroot/%cmsplatf/etc/profile.d/ |
13 | mkdir -p %i/bin |
14 | |
15 | cat << \EOF_PROJCH_SH > %i/bin/projch.sh |
16 | # Check if theres any argument |
17 | # |
18 | if [ $# -gt 2 ]; then |
19 | echo "Usage : project project_name [version]"; |
20 | else |
21 | |
22 | version="current" |
23 | VERSIO="current" |
24 | if [ $# = 2 ]; then |
25 | version=$2 |
26 | VERSIO=$2 |
27 | fi |
28 | |
29 | export VERSIO |
30 | #CVS STUFF |
31 | cvsbase=":kserver:cmscvs.cern.ch:/cvs_server/repositories" |
32 | CVSROOT="${cvsbase}/$1"; export CVSROOT |
33 | |
34 | #SRT STUFF |
35 | #if [ -f $CMS_PATH/OO/Software/$1/releases/$version/SoftRelTools/SRTstartup.sh ]; then |
36 | # BFCURRENT=$version |
37 | # export BFCURRENT |
38 | # . $CMS_PATH/OO/Software/$1/releases/$version/SoftRelTools/SRTstartup.sh |
39 | #fi |
40 | fi |
41 | EOF_PROJCH_SH |
42 | |
43 | cat << \EOF_PROJCH_CSH > %{i}/bin/projch.csh |
44 | # Check if theres any argument |
45 | # |
46 | # if ( ($# > 1) | ($# < 1) ) then |
47 | if ( ($# > 2) | ($# < 1) ) then |
48 | echo "Usage : project project_name [version]" |
49 | else |
50 | |
51 | set version="current" |
52 | setenv VERSIO current |
53 | if ( $# == 2 ) then |
54 | set version=$argv[2] |
55 | setenv VERSIO $argv[2] |
56 | endif |
57 | |
58 | #CVS Stuff |
59 | set cvsbase = ":kserver:cmscvs.cern.ch:/cvs_server/repositories" |
60 | setenv CVSROOT "${cvsbase}/$argv[1]" |
61 | |
62 | #SRT STUFF |
63 | #if ( -f $CMS_PATH/OO/Software/$argv[1]/releases/${version}/SoftRelTools/SRTstartup.csh ) then |
64 | # setenv BFCURRENT $version |
65 | # source $CMS_PATH/OO/Software/$argv[1]/releases/${version}/SoftRelTools/SRTstartup.csh |
66 | #endif |
67 | endif |
68 | EOF_PROJCH_CSH |
69 | |
70 | cat << \EOF_CMSCVSROOT_SH > %i/bin/cmscvsroot.sh |
71 | # Check if theres any argument |
72 | # |
73 | if [ $# -gt 2 ]; then |
74 | echo "Usage : cmscvsroot project_name"; |
75 | else |
76 | |
77 | #CVS STUFF |
78 | cvsbase=":pserver:anonymous@cmscvs.cern.ch:/cvs_server/repositories" |
79 | CVSROOT="${cvsbase}/$1"; export CVSROOT |
80 | |
81 | fi |
82 | EOF_CMSCVSROOT_SH |
83 | |
84 | cat << \EOF_CMSCVSROOT_CSH > %i/bin/cmscvsroot.csh |
85 | # Check if theres any argument |
86 | # |
87 | if ( ($# > 1) | ($# < 1) ) then |
88 | echo "Usage : cmscvsroot project_name" |
89 | else |
90 | |
91 | #CVS Stuff |
92 | set cvsbase = ":pserver:anonymous@cmscvs.cern.ch:/cvs_server/repositories" |
93 | setenv CVSROOT "${cvsbase}/$argv[1]" |
94 | |
95 | endif |
96 | EOF_CMSCVSROOT_CSH |
97 | |
98 | cat << \EOF_CLCOMMIT > %i/bin/clcommit.sh |
99 | #! /bin/sh |
100 | |
101 | # commit version 0.9.4 |
102 | |
103 | # Copyright (C) 1999, 2000, Free Software Foundation |
104 | |
105 | # This script is Free Software, and it can be copied, distributed and |
106 | # modified as defined in the GNU General Public License. A copy of |
107 | # its license can be downloaded from http://www.gnu.org/copyleft/gpl.html |
108 | |
109 | # Originally by Gary V. Vaughan <gvaughan@oranda.demon.co.uk> |
110 | # Heavily modified by Alexandre Oliva <oliva@dcc.unicamp.br> |
111 | |
112 | # This scripts eases checking in changes to CVS-maintained projects |
113 | # with ChangeLog files. It will check that there have been no |
114 | # conflicting commits in the CVS repository and print which files it |
115 | # is going to commit to stderr. A list of files to compare and to |
116 | # check in can be given in the command line. If it is not given, all |
117 | # files in the current directory (and below, unless `-l' is given) are |
118 | # considered for check in. |
119 | |
120 | # The commit message will be extracted from the differences between a |
121 | # file named ChangeLog* in the commit list, or named after -C, and the |
122 | # one in the repository (unless a message was specified with `-m' or |
123 | # `-F'). An empty message is not accepted (but a blank line is). If |
124 | # the message is acceptable, it will be presented for verification |
125 | # (and possible edition) using the $PAGER environment variable (or |
126 | # `more', if it is not set, or `cat', if the `-f' switch is given). |
127 | # If $PAGER exits successfully, the modified files (at that moment) |
128 | # are checked in, unless `-n' was specified, in which case nothing is |
129 | # checked in. |
130 | |
131 | # usage: commit [-v] [-h] [-f] [-l] [-n] [-q] [-z N] [-C ChangeLog_file] |
132 | # [-m msg|-F msg_file] [--] [file|dir ...] |
133 | |
134 | # -f --fast don't check (unless *followed* by -n), and just |
135 | # --force display commit message instead of running $PAGER |
136 | # -l --local don't descend into subdirectories |
137 | # -m msg --message=msg set commit message |
138 | # --msg=msg same as -m |
139 | # -F file --file=file read commit message from file |
140 | # -C file --changelog=file extract commit message from specified ChangeLog |
141 | # -n --dry-run don't commit anything |
142 | # -q --quiet run cvs in quiet mode |
143 | # -zN --compress=N set compression level (0-9, 0=none, 9=max) |
144 | # -v --version print version information |
145 | # -h,-? --help print short or long help message |
146 | |
147 | name=commit |
148 | : ${CVS=cvs} |
149 | cvsopt= |
150 | updateopt= |
151 | commitopt= |
152 | dry_run=false |
153 | commit=: |
154 | update=: |
155 | log_file="${TMPDIR-/tmp}/commitlog.$$" |
156 | |
157 | rm -f "$log_file" |
158 | trap 'rm -f "$log_file"; exit 1' 1 2 15 |
159 | |
160 | # this just eases exit handling |
161 | main_repeat=":" |
162 | while $main_repeat; do |
163 | |
164 | repeat="test $# -gt 0" |
165 | while $repeat; do |
166 | case "$1" in |
167 | -f|--force|--fast) |
168 | update=false |
169 | PAGER=cat |
170 | shift |
171 | ;; |
172 | -l|--local) |
173 | updateopt="$updateopt -l" |
174 | commitopt="$commitopt -l" |
175 | shift |
176 | ;; |
177 | -m|--message|--msg) |
178 | if test $# = 1; then |
179 | echo "$name: missing argument for $1" >&2 |
180 | break |
181 | fi |
182 | if test -f "$log_file"; then |
183 | echo "$name: you can have at most one of -m and -F" >&2 |
184 | break |
185 | fi |
186 | shift |
187 | echo "$1" > "$log_file" |
188 | shift |
189 | ;; |
190 | -F|--file) |
191 | if test -f "$log_file"; then |
192 | echo "$name: you can have at most one of -m and -F" >&2 |
193 | break |
194 | fi |
195 | if test $# = 1; then |
196 | echo "$name: missing argument for $1" >&2 |
197 | break |
198 | fi |
199 | shift |
200 | if cat < "$1" > "$log_file"; then :; else |
201 | break |
202 | fi |
203 | shift |
204 | ;; |
205 | -C|--[cC]hange[lL]og) |
206 | if test $# = 1; then |
207 | echo "$name: missing argument for $1" >&2 |
208 | break |
209 | fi |
210 | shift |
211 | if test ! -f "$1"; then |
212 | echo "$name: ChangeLog file \`$1' does not exist" >&2 |
213 | break |
214 | fi |
215 | ChangeLog="$1" |
216 | ;; |
217 | -n|--dry-run) |
218 | PAGER=cat |
219 | commit=false |
220 | update=true |
221 | shift |
222 | ;; |
223 | -q|--quiet) |
224 | cvsopt="$cvsopt -q" |
225 | shift |
226 | ;; |
227 | -z|--compress) |
228 | if test $# = 1; then |
229 | echo "$name: missing argument for $1" >&2 |
230 | break |
231 | fi |
232 | case "$2" in |
233 | [0-9]) :;; |
234 | *) echo "$name: invalid argument for $1" >&2 |
235 | break |
236 | ;; |
237 | esac |
238 | cvsopt="$cvsopt -z$2" |
239 | shift |
240 | shift |
241 | ;; |
242 | |
243 | -m*|-F*|-C*|-z*) |
244 | opt=`echo "$1" | sed '1s/^\(..\).*$/\1/;q'` |
245 | arg=`echo "$1" | sed '1s/^-[a-zA-Z0-9]//'` |
246 | shift |
247 | set -- "$opt" "$arg" ${1+"$@"} |
248 | ;; |
249 | --message=*|--msg=*|--file=*|--[Cc]hange[Ll]og=*|--compress=*) |
250 | opt=`echo "$1" | sed '1s/^\(--[^=]*\)=.*/\1/;q'` |
251 | arg=`echo "$1" | sed '1s/^--[^=]*=//'` |
252 | shift |
253 | set -- "$opt" "$arg" ${1+"$@"} |
254 | ;; |
255 | |
256 | -v|--version) |
257 | sed '/^# '$name' version /,/^# Heavily modified by/ { s/^# //; p; }; d' < $0 |
258 | exit 0 |
259 | ;; |
260 | -\?|-h) |
261 | sed '/^# usage:/,/# -h/ { s/^# //; p; }; d' < $0 && |
262 | echo |
263 | echo "run \`$name --help | more' for full usage" |
264 | exit 0 |
265 | ;; |
266 | --help) |
267 | sed '/^# '$name' version /,/^[^#]/ { /^[^#]/ d; s/^# //; p; }; d' < $0 |
268 | exit 0 |
269 | ;; |
270 | --) |
271 | shift |
272 | repeat=false |
273 | ;; |
274 | -*) |
275 | echo "$name: invalid flag $1" >&2 |
276 | break |
277 | ;; |
278 | *) |
279 | repeat=false |
280 | ;; |
281 | esac |
282 | done |
283 | # might have used break 2 within the previous loop, but so what |
284 | $repeat && break |
285 | |
286 | $update && \ |
287 | if echo "$name: checking for conflicts..." >&2 |
288 | ($CVS $cvsopt -q -n update $updateopt ${1+"$@"} 2>/dev/null \ |
289 | | while read line; do |
290 | echo "$line" |
291 | echo "$line" >&3 |
292 | done | grep '^C') 3>&1 >/dev/null; then |
293 | echo "$name: some conflicts were found, aborting..." >&2 |
294 | break |
295 | fi |
296 | |
297 | if test ! -f "$log_file"; then |
298 | if test -z "$ChangeLog"; then |
299 | for f in ${1+"$@"}; do |
300 | case "$f" in |
301 | ChangeLog* | */ChangeLog*) |
302 | if test -z "$ChangeLog"; then |
303 | ChangeLog="$f" |
304 | else |
305 | echo "$name: multiple ChangeLog files: $ChangeLog and $f" >&2 |
306 | break |
307 | fi |
308 | ;; |
309 | esac |
310 | done |
311 | fi |
312 | |
313 | echo "$name: checking commit message..." >&2 |
314 | $CVS $cvsopt diff -u ${ChangeLog-ChangeLog} \ |
315 | | while read line; do |
316 | case "$line" in |
317 | "--- "*) :;; |
318 | "-"*) |
319 | echo "$name: *** Warning: the following line in ChangeLog diff is suspicious:" >&2 |
320 | echo "$line" | sed 's/^.//' >&2;; |
321 | "+ "*) |
322 | echo "$name: *** Warning: lines should start with tabs, not spaces; ignoring line:" >&2 |
323 | echo "$line" | sed 's/^.//' >&2;; |
324 | "+") echo;; |
325 | "+ "*) echo "$line";; |
326 | esac |
327 | done \ |
328 | | sed -e 's,\+ ,,' -e '/./p' -e '/./d' -e '1d' -e '$d' > "$log_file" \ |
329 | || break |
330 | # The sed script above removes "+TAB" from the beginning of a line, then |
331 | # deletes the first and/or the last line, when they happen to be empty |
332 | fi |
333 | |
334 | if grep '[^ ]' < "$log_file" > /dev/null; then :; else |
335 | echo "$name: empty commit message, aborting" >&2 |
336 | break |
337 | fi |
338 | |
339 | if grep '^$' < "$log_file" > /dev/null; then |
340 | echo "$name: *** Warning: blank lines should not appear within a commit messages." >&2 |
341 | echo "$name: *** They should be used to separate distinct commits." >&2 |
342 | fi |
343 | |
344 | ${PAGER-more} "$log_file" || break |
345 | |
346 | sleep 1 # give the user some time for a ^C |
347 | |
348 | # Do not check for empty $log_file again, even though the user might have |
349 | # zeroed it out. If s/he did, it was probably intentional. |
350 | |
351 | if $commit; then |
352 | echo " $CVS $cvsopt commit $commitopt -F $log_file ${1+"$@"} || break" |
353 | $CVS $cvsopt commit $commitopt -F $log_file ${1+"$@"} || break |
354 | fi |
355 | |
356 | main_repeat=false |
357 | done |
358 | |
359 | rm -f "$log_file" |
360 | |
361 | # if main_repeat was not set to `false', we failed |
362 | $main_repeat && exit 1 |
363 | exit 0 |
364 | EOF_CLCOMMIT |
365 | |
366 | chmod +x %i/bin/projch.sh |
367 | chmod +x %i/bin/projch.csh |
368 | chmod +x %i/bin/cmscvsroot.sh |
369 | chmod +x %i/bin/cmscvsroot.csh |
370 | chmod +x %i/bin/clcommit.sh |
371 | |
372 | ln -sf %i/etc/profile.d/init.sh %instroot/%cmsplatf/etc/profile.d/S00cms-cvs-utils.sh |
373 | ln -sf %i/etc/profile.d/init.csh %instroot/%cmsplatf/etc/profile.d/S00cms-cvs-utils.csh |
374 | |
375 | %files |
376 | %i |
377 | %instroot/%cmsplatf/etc/profile.d/S00cms-cvs-utils.sh |
378 | %instroot/%cmsplatf/etc/profile.d/S00cms-cvs-utils.csh |
379 | |
380 | %post |
381 | perl -p -i -e 's|(.*setenv.*)|#$1|' $RPM_INSTALL_PREFIX/%pkgrel/etc/profile.d/init.csh |
382 | perl -p -i -e 's|(.*export.*)|#$1|' $RPM_INSTALL_PREFIX/%pkgrel/etc/profile.d/init.sh |
383 | ln -sf $RPM_INSTALL_PREFIX/%pkgrel/etc/profile.d/init.sh $RPM_INSTALL_PREFIX/%cmsplatf/etc/profile.d/S00cms-cvs-utils.sh |
384 | ln -sf $RPM_INSTALL_PREFIX/%pkgrel/etc/profile.d/init.csh $RPM_INSTALL_PREFIX/%cmsplatf/etc/profile.d/S00cms-cvs-utils.csh |