diff options
author | peter <peter@FreeBSD.org> | 1996-11-01 09:45:51 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1996-11-01 09:45:51 +0000 |
commit | 78f24241f239dd123b22744c5c01cfe274aa41da (patch) | |
tree | 5672e527be823c0d83697b293e7008820df2b27e | |
parent | 633ae526c538f50204af23b165cb9f3de80a32fe (diff) | |
download | FreeBSD-src-78f24241f239dd123b22744c5c01cfe274aa41da.zip FreeBSD-src-78f24241f239dd123b22744c5c01cfe274aa41da.tar.gz |
Update to use the recommended recovery procedure from nvi-1.76.
This is a lot more robust and handles errors a lot better. It also cleans
up stray, hopeless, or unmodified files rather than leaving them there
forever.
-rw-r--r-- | etc/rc | 41 |
1 files changed, 36 insertions, 5 deletions
@@ -1,5 +1,5 @@ #!/bin/sh -# $Id: rc,v 1.102 1996/10/21 20:09:30 wpaul Exp $ +# $Id: rc,v 1.103 1996/10/28 08:28:02 joerg Exp $ # From: @(#)rc 5.27 (Berkeley) 6/5/91 # System startup script run by init on autoboot @@ -341,12 +341,43 @@ if [ -f /etc/rc.${arch} ]; then fi # Recover vi editor files. -virecovery=`echo /var/tmp/vi.recover/recover.*` -if [ "$virecovery" != '/var/tmp/vi.recover/recover.*' ]; then +vibackup=`echo /var/tmp/vi.recover/vi.*` +if [ "$vibackup" != '/var/tmp/vi.recover/vi.*' ]; then echo 'Recovering vi editor sessions' - for i in $virecovery; do - sendmail -t < $i + for i in $vibackup; do + # Only test files that are readable. + if test ! -r $i; then + continue + fi + + # Unmodified nvi editor backup files either have the + # execute bit set or are zero length. Delete them. + if test -x $i -o ! -s $i; then + rm -f $i + fi done + + # It is possible to get incomplete recovery files, if the editor + # crashes at the right time. + virecovery=`echo /var/tmp/vi.recover/recover.*` + if [ "$virecovery" != "/var/tmp/vi.recover/recover.*" ]; then + for i in $virecovery; do + # Only test files that are readable. + if test ! -r $i; then + continue + fi + + # Delete any recovery files that are zero length, + # corrupted, or that have no corresponding backup file. + # Else send mail to the user. + recfile=`awk '/^X-vi-recover-path:/{print $2}' < $i` + if test -n "$recfile" -a -s "$recfile"; then + sendmail -t < $i + else + rm -f $i + fi + done + fi fi # for each valid dir in $local_startup, search for init scripts matching *.sh |