xref: /netbsd-src/external/bsd/nvi/dist/dist/recover.in (revision dbd550ed1a6686d6600f748306f9cc03d8cd4c94)
1#!/bin/sh -
2#
3#	Id: recover.in,v 8.9 2001/08/30 13:59:23 skimo Exp  (Berkeley) Date: 2001/08/30 13:59:23
4#
5# Script to recover nvi edit sessions.
6
7RECDIR="@vi_cv_path_preserve@"
8SENDMAIL="@vi_cv_path_sendmail@"
9
10echo 'Recovering nvi editor sessions.'
11
12# Check editor backup files.
13vibackup=`echo $RECDIR/vi.*`
14if [ "$vibackup" != "$RECDIR/vi.*" ]; then
15	for i in $vibackup; do
16		# Only test files that are readable.
17		if test ! -r $i; then
18			continue
19		fi
20
21		INUSE="@INUSE@"
22		if test "$INUSE" && $INUSE; then
23			continue
24		fi
25
26		# Unmodified nvi editor backup files either have the
27		# execute bit set or are zero length.  Delete them.
28		if test -x $i -o ! -s $i; then
29			rm $i
30		fi
31	done
32fi
33
34# It is possible to get incomplete recovery files, if the editor crashes
35# at the right time.
36virecovery=`echo $RECDIR/recover.*`
37if [ "$virecovery" != "$RECDIR/recover.*" ]; then
38	for i in $virecovery; do
39		# Only test files that are readable.
40		if test ! -r $i; then
41			continue
42		fi
43
44		INUSE="@INUSE@"
45		if test "$INUSE" && $INUSE; then
46			continue
47		fi
48
49		# Delete any recovery files that are zero length, corrupted,
50		# or that have no corresponding backup file.  Else send mail
51		# to the user.
52		recfile=`awk '/^X-vi-recover-path:/{print $2}' < $i`
53		if test -n "$recfile" -a -s "$recfile"; then
54			$SENDMAIL -t < $i
55		else
56			rm $i
57		fi
58	done
59fi
60