3 # $NetBSD: virecover,v 1.6 2002/03/22 04:34:00 thorpej Exp $
4 # $FreeBSD: src/etc/rc.d/virecover,v 1.5 2003/05/05 09:53:32 mtm Exp $
5 # $DragonFly: src/etc/rc.d/virecover,v 1.3 2004/06/22 20:37:02 cpressey Exp $
9 # REQUIRE: mountcritremote ldconfig
13 # XXX: should require `mail'!
19 start_cmd="virecover_start"
23 if [ ! -d /var/tmp/vi.recover ]; then
24 mkdir /var/tmp/vi.recover
25 chown root:wheel /var/tmp/vi.recover
26 chmod 1777 /var/tmp/vi.recover
28 find /var/tmp/vi.recover ! -type f -a ! -type d -delete
29 vibackup=`echo /var/tmp/vi.recover/vi.*`
30 if [ "${vibackup}" != '/var/tmp/vi.recover/vi.*' ]; then
31 echo -n 'Recovering vi editor sessions:'
32 for i in /var/tmp/vi.recover/vi.*; do
33 # Only test files that are readable.
34 if [ ! -r "${i}" ]; then
38 # Unmodified nvi editor backup files either have the
39 # execute bit set or are zero length. Delete them.
40 if [ -x "${i}" -o ! -s "${i}" ]; then
45 # It is possible to get incomplete recovery files, if the editor
46 # crashes at the right time.
47 virecovery=`echo /var/tmp/vi.recover/recover.*`
48 if [ "${virecovery}" != "/var/tmp/vi.recover/recover.*" ]; then
49 for i in /var/tmp/vi.recover/recover.*; do
50 # Only test files that are readable.
51 if [ ! -r "${i}" ]; then
55 # Delete any recovery files that are zero length,
56 # corrupted, or that have no corresponding backup file.
57 # Else send mail to the user.
58 recfile=`awk '/^X-vi-recover-path:/{print $2}' < "${i}"`
59 if [ -n "${recfile}" -a -s "${recfile}" ]; then