| #!/bin/csh -f | 
 | # | 
 | # 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 | 
 | set printnew = 0 | 
 | unset options_done | 
 | while ( !( $?options_done ) && ($#argv > 0)) | 
 |     switch ($argv[1]) | 
 | 	case -h : | 
 | 	    usage | 
 | 	case -n : | 
 | 	    set doit = 0; shift argv; breaksw | 
 | 	case -new : | 
 | 	    set printnew = 1; shift argv; breaksw | 
 | 	default : | 
 | 	    set options_done; breaksw | 
 |     endsw | 
 | end | 
 |  | 
 | if ($doit == 1) then | 
 |     /bin/mv -f cvs.out cvs.out.bak >&/dev/null | 
 |     cvs update -P -d >& cvs.out | 
 | ##    if ($status != 0) then | 
 | ##        echo "ERROR: CVS update failed: " | 
 | ##	cat cvs.out | 
 | ##	exit 1 | 
 |     endif | 
 | else | 
 |     echo ""; echo "NOT UPDATING FILES.  RESULTS FROM LAST RUN:"; echo "" | 
 | endif | 
 |  | 
 | echo ""; echo "	FILES UPDATED:" | 
 | grep '^[UP] ' cvs.out | 
 |  | 
 | echo ""; echo "	UPDATE CONFLICTS OCCURRED FOR THE FOLLOWING FILES:" | 
 | grep '^C ' cvs.out | 
 |  | 
 | echo ""; echo "	NEW FILES THAT NEED TO BE COMMITTED:" | 
 | grep '^[AR] ' cvs.out | 
 |  | 
 | echo ""; echo "	FILES REMOVED FROM YOUR DIRECTORY:" | 
 | grep 'no longer in the repository' cvs.out | 
 |  | 
 | echo ""; echo "	FILES SUCCESSFULLY MERGED (or locally modified):" | 
 | grep '^M ' cvs.out | 
 |  | 
 | echo ""; echo "	NEW FILES AND DIRECTORIES:" | 
 | if ($printnew != 0) then | 
 |     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' | 
 | else | 
 |     echo '(USE "cvsupdate -n -new" TO SEE NEW FILES AND DIRECTORIES.)' | 
 | endif | 
 |  | 
 | echo "" | 
 |  | 
 |  | 
 | #========================================================= | 
 | # CODE TO BE EXECUTED IF INTERRUPT IS RECEIVED | 
 | #========================================================= | 
 | cleanup: | 
 |     exit($pstatus) |