aee2760a80e1c918a80098bd91633adec7e576d5
[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 # Use this if you want the user to explicitly set 'UPDATE_MOTD' in 
52 # /etc/default/mythtv-status
53 if [ "x$UPDATE_MOTD" != "xyes" ] ; then
54     log_failure_msg "$NAME disabled, please adjust the configuration to your needs "
55     log_failure_msg "and then set UPDATE_MOTD to 'yes' in /etc/default/$NAME to enable it."
56     exit
57 fi
58
59 # Debian Wheezy+ handles the MOTD differently.
60 [ -f /run/motd.dynamic ] && WORKFILE=/run/motd.dynamic
61
62 set -e
63
64 case "$1" in
65   start|reload|refresh|restart|force-reload)
66     log_daemon_msg "Updating $DESC" "$NAME"
67
68     rm $DISABLED_FLAG 2> /dev/null || true
69     if ! /usr/sbin/mythtv-update-motd; then
70         log_failure_msg "Failed to update MOTD"
71         exit 1
72
73     fi
74
75     log_end_msg 0
76     ;;
77   stop)
78     log_daemon_msg "Stopping $DESC" "$NAME"
79     touch $DISABLED_FLAG
80     [ -f /run/motd.orig ] && cp /run/motd.orig $WORKFILE
81     rm /run/motd.orig 2> /dev/null || true
82     rm $TEMPFILE 2> /dev/null || true
83     log_end_msg 0
84     ;;
85   status)
86     if [ -f $DISABLED_FLAG ]; then
87       log_failed "$NAME is not running (disabled by flag file: $DISABLED_FLAG)"
88       exit 1
89     fi
90     if [ ! -f $WORKFILE ]; then 
91       log_failure_msg "$NAME is not running (no motd file)!"
92       exit 1
93     fi
94     if [ $(date -d "15 minutes ago" +"%s") -gt $(stat -c "%Y" $WORKFILE) ]
95     then
96       log_failure_msg "$NAME is not running (motd file is stale)"
97       exit 1
98     fi
99
100     # If all tests have passed, then we must be running.
101     log_success_msg "$NAME is running"
102     exit 0
103     ;;
104   *)
105     N=/etc/init.d/$NAME
106     echo "Usage: $N {start|stop|reload|refresh|status}" >&2
107     exit 1
108     ;;
109 esac
110
111 exit 0