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