4ed178db7e9404bc7b730dea233e9a833f007d29
[librecmc/librecmc.git] / package / kernel / om-watchdog / files / om-watchdog.init
1 #!/bin/sh /etc/rc.common
2 #
3 # Copyright (C) 2011 OpenWrt.org
4 #
5
6 START=11
7 STOP=11
8
9 USE_PROCD=1
10 NAME=om-watchdog
11 PROG=/sbin/om-watchdog
12
13 get_gpio() {
14         if [ -r /lib/ar71xx.sh ]; then
15                 . /lib/ar71xx.sh
16                 local board=$(ar71xx_board_name)
17
18                 case "$board" in
19                         "om2p" | \
20                         "om2p-hs" | \
21                         "om2p-hsv2" | \
22                         "om2p-hsv3" | \
23                         "om5p-acv2")
24                                 return 12
25                                 ;;
26                         "om2pv2" | \
27                         "om2p-lc")
28                                 return 26
29                                 ;;
30                         "om5p" | \
31                         "om5p-an")
32                                 return 11
33                                 ;;
34                         "om5p-ac")
35                                 return 17
36                                 ;;
37                         "mr600v2")
38                                 return 15
39                                 ;;
40                         "mr900" | \
41                         "mr900v2" | \
42                         "mr1750" | \
43                         "mr1750v2")
44                                 return 16
45                                 ;;
46                 esac
47         else
48                 #we assume it is om1p in this case
49                 return 3
50         fi
51
52         return 255
53 }
54
55 start_service() {
56         get_gpio
57         gpio="$?"
58         [ "$gpio" != "255" ] || return
59
60         procd_open_instance
61         procd_set_param command "${PROG}" "${gpio}"
62         procd_set_param respawn
63         procd_close_instance
64 }