* Added tabs instead of spaces for readability and consistency with NetBSD
[dragonfly.git] / etc / rc.d / savecore
1 #!/bin/sh
2 #
3 # $NetBSD: savecore,v 1.5 2002/03/22 04:34:00 thorpej Exp $
4 # $FreeBSD: src/etc/rc.d/savecore,v 1.3 2002/09/06 16:18:05 gordon Exp $
5 # $DragonFly: src/etc/rc.d/savecore,v 1.2 2003/11/19 10:32:45 eirikn Exp $
6 #
7
8 # PROVIDE: savecore
9 # REQUIRE: syslogd
10 # BEFORE:  SERVERS
11 # KEYWORD: DragonFly FreeBSD NetBSD
12
13 . /etc/rc.subr
14
15 name="savecore"
16 start_cmd="savecore_start"
17 start_precmd="savecore_prestart"
18 stop_cmd=":"
19
20 case ${OSTYPE} in
21 NetBSD)
22         rcvar=$name
23         ;;
24 esac
25
26 savecore_prestart()
27 {
28         #       ${DUMPDIR} should be a directory or a symbolic link
29         #       to the crash directory if core dumps are to be saved.
30         #
31         DUMPDIR="${dumpdir:-/var/crash}"
32
33         case ${OSTYPE} in
34         DragonFly)
35                 # Quit if we have no dumb device
36                 case ${dumpdev} in
37                 [Nn][Oo] | '')
38                         debug 'No dump device. Quitting.'
39                         return 1
40                         ;;
41                 esac
42                 # If there is no crash directory set it now
43                 case ${dumpdir} in
44                 '')
45                         dumpdir='/var/crash'
46                         ;;
47                 [Nn][Oo])
48                         dumpdir='NO'
49                         ;;
50                 esac
51                 if [ ! -e "${dumpdev}" -o ! -d "${dumpdir}" ]; then
52                         warn "Wrong dump device or directory. Savecore not run."
53                         return 1
54                 fi
55                 ;;
56         FreeBSD)
57                 # Quit if we have no dump device
58                 case ${dumpdev} in
59                 [Nn][Oo] | '')
60                         debug 'No dump device. Quitting.'
61                         return 1
62                         ;;
63                 esac
64
65                 # If there is no crash directory set it now
66                 case ${dumpdir} in
67                 '')
68                         dumpdir='/var/crash'
69                         ;;
70                 [Nn][Oo])
71                         dumpdir='NO'
72                         ;;
73                 esac
74
75                 if [ ! -e "${dumpdev}" -o ! -d "${dumpdir}" ]; then
76                         warn "Wrong dump device or directory. Savecore not run."
77                         return 1
78                 fi
79                 ;;
80         NetBSD)
81                 if [ ! -d "${dumpdir}" ]; then
82                         warn "No /var/crash directory; savecore not run."
83                         return 1
84                 fi
85                 ;;
86         esac
87         return 0
88 }
89
90 savecore_start()
91 {
92                 echo "Checking for core dump..."
93                 savecore ${savecore_flags} ${DUMPDIR}
94 }
95
96 load_rc_config $name
97 run_rc_command "$1"