6b33ef2c3542081e88e3b5cd97112bf126fb0f26
[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$UPDATE_MOTD != xyes -o -f /var/lib/mythtv-status/motd_update_disabled ]
12 then
13   exit
14 fi
15
16 if [ -d /etc/update-motd.d ]
17 then
18   # We want to generate file which only contains the MythTV Status
19   # as a snippet in /etc/update-motd.d will cat this file.
20
21   WORKFILE=/var/run/motd.mythtv-status
22   TEMPFILE=${WORKFILE}.new
23 else
24   # We are going to generate an motd file to be used for the system,
25   # with the previous content first, then the MythTV Status.
26
27   # Debian Wheezy+ handles the MOTD differently.
28   [ -f /var/run/motd.dynamic ] && WORKFILE=/var/run/motd.dynamic
29
30   # Just incase someone has removed their motd file.
31   [ -f $WORKFILE ] || touch $WORKFILE
32   # Keep the original content around.
33   [ -f /var/run/motd.orig ] || cp $WORKFILE /var/run/motd.orig
34
35   # If the tempfile is less than 15 minutes old, object, otherwise
36   # we'll assume that something went wrong and remove it.
37   if [ -f $TEMPFILE ]; then
38       AGE=$(stat -c "%Z" $TEMPFILE);
39     if (( $AGE > $(date +'%s') - 900 ))
40     then
41         echo "I think another $NAME is running."
42         exit 1
43     fi
44   fi
45
46   # Have whatever the system motd contains before the MythTV content
47   cp /var/run/motd.orig $TEMPFILE
48 fi
49
50
51 ret=0
52 mythtv-status $UPDATE_MOTD_ARGS -h $HOST >> $TEMPFILE || ret=$?
53 if [ $ret -eq 0 -o $ret -eq 1 ]; then
54     if [ ! -f $TEMPFILE ]; then
55         echo My temporary file has gone away, failed.
56         exit 1
57     else
58         mv $TEMPFILE $WORKFILE
59     fi
60 else
61     # Something else went wrong, remove the temp file.
62     rm $TEMPFILE
63     exit 1
64 fi