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.1 2003/07/24 06:35:37 dillon Exp $
9 # REQUIRE: mountcritremote ldconfig
11 # KEYWORD: DragonFly FreeBSD NetBSD
13 # XXX: should require `mail'!
22 start_cmd="virecover_start"
25 start_cmd="virecover_start"
28 command="/usr/libexec/${name}"
34 [ -d /var/tmp/vi.recover ] || return
35 find /var/tmp/vi.recover ! -type f -a ! -type d -delete
36 vibackup=`echo /var/tmp/vi.recover/vi.*`
37 if [ "${vibackup}" != '/var/tmp/vi.recover/vi.*' ]; then
38 echo -n 'Recovering vi editor sessions:'
39 for i in /var/tmp/vi.recover/vi.*; do
40 # Only test files that are readable.
41 if [ ! -r "${i}" ]; then
45 # Unmodified nvi editor backup files either have the
46 # execute bit set or are zero length. Delete them.
47 if [ -x "${i}" -o ! -s "${i}" ]; then
52 # It is possible to get incomplete recovery files, if the editor
53 # crashes at the right time.
54 virecovery=`echo /var/tmp/vi.recover/recover.*`
55 if [ "${virecovery}" != "/var/tmp/vi.recover/recover.*" ]; then
56 for i in /var/tmp/vi.recover/recover.*; do
57 # Only test files that are readable.
58 if [ ! -r "${i}" ]; then
62 # Delete any recovery files that are zero length,
63 # corrupted, or that have no corresponding backup file.
64 # Else send mail to the user.
65 recfile=`awk '/^X-vi-recover-path:/{print $2}' < "${i}"`
66 if [ -n "${recfile}" -a -s "${recfile}" ]; then