Ensure we still work if RUN and ARGS are used instead of the new variables
[mythtv-status.git] / debian / init.d
1 #!/bin/sh 
2 #
3 # Copyright (c) 2007 Javier Fernandez-Sanguino <jfs@debian.org>
4 # Copyright (c) 2007-2019 Andrew Ruthven <andrew@etc.gen.nz>
5 #
6 # This is free software; you may redistribute it and/or modify
7 # it under the terms of the GNU General Public License as
8 # published by the Free Software Foundation; either version 2,
9 # or (at your option) any later version.
10 #
11 # This is distributed in the hope that it will be useful, but
12 # WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License with
17 # the Debian operating system, in /usr/share/common-licenses/GPL;  if
18 # not, write to the Free Software Foundation, Inc., 59 Temple Place,
19 # Suite 330, Boston, MA 02111-1307 USA
20 #
21 ### BEGIN INIT INFO
22 # Provides:          mythtv-status
23 # Required-Start:    $remote_fs
24 # Required-Stop:     $remote_fs
25 # Should-Start:      $named mythtv-backend motd
26 # Should-Stop:       $named mythtv-backend motd
27 # Default-Start:     2 3 4 5
28 # Default-Stop:      0 1 6
29 # Short-Description: Update the MOTD with the MythTV status
30 # Description:       Update the MOTD with the MythTV status
31 ### END INIT INFO
32
33 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
34
35 DAEMON=/usr/bin/mythtv-status # Introduce the server's location here
36 NAME=mythtv-status            # Introduce the short server's name here
37 DESC="MythTV Status"          # Introduce a short description here
38 TEMPFILE=/run/motd.mythtv-status
39 WORKFILE=/run/motd
40 DISABLED_FLAG=/var/lib/mythtv-status/motd_update_disabled
41
42 test -x $DAEMON || exit 0
43
44 . /lib/lsb/init-functions
45
46 # Include defaults if available
47 if [ -f /etc/default/$NAME ] ; then
48         . /etc/default/$NAME
49 fi
50
51 # Support the old RUN variable
52 [ x$UPDATE_MOTD = x ] && UPDATE_MOTD=$RUN
53
54 # Use this if you want the user to explicitly set 'UPDATE_MOTD' in 
55 # /etc/default/mythtv-status
56 if [ "x$UPDATE_MOTD" != "xyes" ] ; then
57     log_failure_msg "$NAME disabled, please adjust the configuration to your needs "
58     log_failure_msg "and then set UPDATE_MOTD to 'yes' in /etc/default/$NAME to enable it."
59     exit
60 fi
61
62 # Debian Wheezy+ handles the MOTD differently.
63 [ -f /run/motd.dynamic ] && WORKFILE=/run/motd.dynamic
64
65 set -e
66
67 case "$1" in
68   start|reload|refresh|restart|force-reload)
69     log_daemon_msg "Updating $DESC" "$NAME"
70
71     rm $DISABLED_FLAG 2> /dev/null || true
72     if ! /usr/sbin/mythtv-update-motd; then
73         log_failure_msg "Failed to update MOTD"
74         exit 1
75
76     fi
77
78     log_end_msg 0
79     ;;
80   stop)
81     log_daemon_msg "Stopping $DESC" "$NAME"
82     touch $DISABLED_FLAG
83     [ -f /run/motd.orig ] && cp /run/motd.orig $WORKFILE
84     rm /run/motd.orig 2> /dev/null || true
85     rm $TEMPFILE 2> /dev/null || true
86     log_end_msg 0
87     ;;
88   status)
89     if [ -f $DISABLED_FLAG ]; then
90       log_failed "$NAME is not running (disabled by flag file: $DISABLED_FLAG)"
91       exit 1
92     fi
93     if [ ! -f $WORKFILE ]; then 
94       log_failure_msg "$NAME is not running (no motd file)!"
95       exit 1
96     fi
97     if [ $(date -d "15 minutes ago" +"%s") -gt $(stat -c "%Y" $WORKFILE) ]
98     then
99       log_failure_msg "$NAME is not running (motd file is stale)"
100       exit 1
101     fi
102
103     # If all tests have passed, then we must be running.
104     log_success_msg "$NAME is running"
105     exit 0
106     ;;
107   *)
108     N=/etc/init.d/$NAME
109     echo "Usage: $N {start|stop|reload|refresh|status}" >&2
110     exit 1
111     ;;
112 esac
113
114 exit 0