#!/bin/csh -f set path = (/usr/bin /bin) # Work directory set WORK = '~/Work' # Directories where Gnus repo and Emacs repo are. set GNUS = /var/repos/quimby/gnus set EMACS = /var/repos/emacs/trunk # Offset patch set OFFSET = '~/.Gnus-diff' if (! -d $WORK) then rm -f $WORK >& /dev/null mkdir -p $WORK endif chdir $WORK if (-f DIFF0 || -f DIFF || -f E || -f G || -d E || -d G) then echo -n 'Old work file(s) exist, delete? (y/N) ' set ans = $< if ($ans =~ [Yy]*) then rm -fr DIFF0 DIFF E G >& /dev/null else exit endif endif setenv SIMPLE_BACKUP_SUFFIX .orig mkdir -p E/lisp E/texi E/etc G/lisp G/texi G/etc chdir G (chdir $GNUS; tar cf -\ GNUS-NEWS\ )| tar xf - chdir lisp (chdir $GNUS/lisp; tar cf - *.el)| tar xf - rm\ assistant.el\ dgnushack.el\ encrypt.el\ gnus-xmas.el\ lpath.el\ messagexmas.el\ nnheaderxm.el\ smime-ldap.el chdir ../texi (chdir $GNUS/texi; tar cf -\ *.texi\ gnus-logo.eps\ gnus-news.el\ gnus-refcard.tex\ )| tar xf - chdir ../etc (chdir $GNUS/etc; tar cf -\ gnus-tut.txt\ gnus/gnus-setup.ast\ gnus/news-server.ast\ )| tar xf - chdir ../../E (chdir $EMACS/etc; tar cf -\ GNUS-NEWS\ )| tar xf - chdir lisp (chdir $EMACS/lisp/gnus; tar cf - *.el)| tar xf - chdir ../texi (chdir $EMACS/doc/misc; tar cf -\ auth.texi\ doclicense.texi\ emacs-mime.texi\ gnus-coding.texi\ gnus-faq.texi\ gnus-news.el\ gnus-news.texi\ gnus.texi\ message.texi\ pgg.texi\ sasl.texi\ sieve.texi\ )| tar xf - (chdir $EMACS/etc/refcards; tar cf -\ gnus-logo.eps\ gnus-refcard.tex\ )| tar xf - chdir ../etc (chdir $EMACS/etc; tar cf -\ gnus-tut.txt\ gnus/gnus-setup.ast\ gnus/news-server.ast\ )| tar xf - chdir $EMACS/lisp cp -p\ mail/binhex.el\ net/dig.el\ textmodes/dns-mode.el\ net/dns.el\ format-spec.el\ mail/hashcash.el\ hex-util.el\ net/hmac-def.el\ net/hmac-md5.el\ net/imap.el\ md4.el\ net/netrc.el\ net/ntlm.el\ calendar/parse-time.el\ password-cache.el\ pgg-def.el\ pgg-gpg.el\ pgg-parse.el\ pgg-pgp.el\ pgg-pgp5.el\ pgg.el\ net/sasl-cram.el\ net/sasl-digest.el\ net/sasl-ntlm.el\ net/sasl.el\ sha1.el\ calendar/time-date.el\ net/tls.el\ mail/uudecode.el\ $WORK/E/lisp chdir $WORK diff -aruN G E > DIFF0 if (-f $OFFSET) then patch -p0 < $OFFSET > /dev/null diff -aruN -x '*.orig' G E > DIFF if (-s DIFF) then cp -p $GNUS/etc/ChangeLog G/etc cp -p $GNUS/lisp/ChangeLog G/lisp cp -p $GNUS/texi/ChangeLog G/texi cp -p $EMACS/etc/ChangeLog E/etc cp -p $EMACS/lisp/gnus/ChangeLog E/lisp cp -p $EMACS/doc/misc/ChangeLog E/texi echo 'Change(s) found in "'$WORK'/DIFF".' echo '(consider updating "'$OFFSET'" by "'$WORK'/DIFF0".)' else diff -aruN G E > DIFF rm -r E G if (-s DIFF) then echo 'No change found,' echo 'but "'$OFFSET'" needs to be updated by "'$WORK'/DIFF0".' rm DIFF else echo 'No change found.' rm DIFF DIFF0 endif endif else echo 'Consider creating "'$OFFSET'" by copying "'$WORK'/DIFF0".' endif