Knowing why mythtv-status failed can be useful
[mythtv-status.git] / bin / mythtv-update-motd
1 #!/bin/sh
2
3 # Run mythtv-status to update the MOTD.
4
5 NAME=mythtv-update-motd
6 WORKFILE=/var/run/motd
7 TEMPFILE=/var/run/motd.mythtv-status
8
9 . /etc/default/mythtv-status
10
11 if [ x$RUN != xyes ]
12 then
13   exit
14 fi
15
16 if [ -d /etc/update-motd.d ]
17 then
18   WORKFILE=/var/run/motd.mythtv-status
19   TEMPFILE=${WORKFILE}.new
20 else
21   # Debian Wheezy+ handles the MOTD differently.
22   [ -f /var/run/motd.dynamic ] && WORKFILE=/var/run/motd.dynamic
23
24   # Just incase someone has removed their motd file.
25   [ -f $WORKFILE ] || touch $WORKFILE
26   [ -f /var/run/motd.orig ] || cp $WORKFILE /var/run/motd.orig
27
28   # If the tempfile is less than 15 minutes old, object, otherwise
29   # we'll assume that something went wrong and remove it.
30   if [ -f $TEMPFILE ]; then
31       AGE=$(stat -c "%Z" $TEMPFILE);
32     if (( $AGE > $(date +'%s') - 900 ))
33     then
34         echo "I think another $NAME is running."
35         exit 1
36     fi
37   fi
38
39   [ ! -f /var/run/motd.orig ] && cp /var/run/motd /var/run/motd.orig
40
41   cp /var/run/motd.orig /var/run/motd.new
42 fi
43
44
45 ret=0
46 mythtv-status $ARGS -h $HOST >> $TEMPFILE || ret=$?
47 if [ $ret -eq 0 -o $ret -eq 1 ]; then
48     if [ ! -f $TEMPFILE ]; then
49         echo My temporary file has gone away, failed.
50         exit 1
51     else
52         mv $TEMPFILE $WORKFILE
53     fi
54 else
55     # Something else went wrong, remove the temp file.
56     rm $TEMPFILE
57     exit 1
58 fi