7 # REQUIRE: mountcritremote ldconfig
10 # XXX: should require `mail'!
15 desc="Recover crashed vi sessions"
16 rcvar="virecover_enable"
18 start_cmd="virecover_start"
22 [ -d /var/tmp/vi.recover ] || return
23 find /var/tmp/vi.recover ! -type f -a ! -type d -delete
24 vibackup=`echo /var/tmp/vi.recover/vi.*`
25 if [ "${vibackup}" != '/var/tmp/vi.recover/vi.*' ]; then
26 echo -n 'Recovering vi editor sessions:'
27 for i in /var/tmp/vi.recover/vi.*; do
28 # Only test files that are readable.
29 if [ ! -r "${i}" ]; then
33 # Unmodified nvi editor backup files either have the
34 # execute bit set or are zero length. Delete them.
35 if [ -x "${i}" -o ! -s "${i}" ]; then
40 # It is possible to get incomplete recovery files, if the editor
41 # crashes at the right time.
42 virecovery=`echo /var/tmp/vi.recover/recover.*`
43 if [ "${virecovery}" != "/var/tmp/vi.recover/recover.*" ]; then
44 for i in /var/tmp/vi.recover/recover.*; do
45 # Only test files that are readable.
46 if [ ! -r "${i}" ]; then
50 # Delete any recovery files that are zero length,
51 # corrupted, or that have no corresponding backup file.
52 # Else send mail to the user.
53 recfile=`awk '/^X-vi-recover-path:/{print $2}' < "${i}"`
54 if [ -n "${recfile}" -a -s "${recfile}" ]; then