| #!/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) |