aboutsummaryrefslogtreecommitdiffstats
path: root/cvsupdate
blob: fca274c810ccf6c8a234d67b3c4eb8cb8f5c08dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/csh -f -c
#
# This script updates the entire tree, saves the output in cvs.out,
# and then separately prints out the files that had merge conflicts,
# those that were merged successfully, and those that are new.
# Note that this script uses "cvs update -P -d".
#
# USAGE:
# 	cvsupdate	## normal run
# 	cvsupdate -n	## run grep commands on output of the last run of cvs
# 	cvsupdate -h	## usage information
#

set pstatus = 0
onintr cleanup
alias usage 'echo "USAGE: $0:t [-h][-n]"; set pstatus = 1; goto cleanup'

set doit = 1
unset options_done
while ( !( $?options_done ) && ($#argv > 0))
    switch ($argv[1])
	case -h :
	    usage
	case -n :
	    set doit = 0; shift argv; breaksw
	default :
	    set options_done; breaksw
    endsw
end

if ($doit == 1) then
    /bin/mv -f cvs.out cvs.out.bak
    cvs update -P -d >& cvs.out
else
    echo ""; echo "Not updating files."; echo ""
endif

echo ""; echo "	FILES UPDATED:"
grep '^U' cvs.out

echo ""; echo "	UPDATE CONFLICTS OCCURRED FOR THE FOLLOWING FILES:"
grep '^C' cvs.out

echo ""; echo "	FILES SUCCESSFULLY MERGED (or locally modified):"
grep '^M' cvs.out | grep -v Merging

echo ""; echo "	NEW FILES AND DIRECTORIES:"
grep '^\?' cvs.out | & grep -v '\.bc' | grep -v Updating | grep -v cvsup | grep -v 'cvs.out' | grep -v gnumake.out | grep -v '\.mc$' | grep -v '\.s$' | grep -v '\.native'

echo ""


#=========================================================
# CODE TO BE EXECUTED IF INTERRUPT IS RECEIVED
#=========================================================
cleanup:
    exit($pstatus)