#!/bin/bash #Called from LinHES Service Menu Check for Updates Menu usage () { echo "Usage: $0 [-h] [-s]" echo echo "-h - Print this help/usage message and quit" echo "-s - Run silently, no OSD messages" exit $1 } dsply () { if grep -q "Updates Available" /usr/share/mythtv/themes/defaultmenu/linhes.xml then if [ "$1" = false ]; then msg_client.py --clear --tag "checkUpdates" msg_client.py --kill msg_client.py --msg "Updates available!\nGo to the Service Menu to install the updates.|middle" else killall mythfrontend fi echo " Updates available!" exit else [ "$1" = false ] && { msg_client.py --msg "Checking for updates...|middle" --timeout 600 --tag "checkUpdates"; } echo " Checking for updates..." fi } chck () { sudo pacman -Sy [ -f /tmp/to_be_upgraded ] && sudo rm /tmp/to_be_upgraded sudo pacman -Qu > /tmp/to_be_upgraded if [[ ! -s /tmp/to_be_upgraded ]] then #hide LinHES update message on main menu echo " Hiding update message in LinHES theme." sudo sed -i '/LinHES UPDATE MESSAGE/c\ <!--LinHES UPDATE MESSAGE' /usr/share/mythtv/themes/LinHES/menu-ui.xml if [ "$1" = false ]; then msg_client.py --clear --tag "checkUpdates" msg_client.py --kill msg_client.py --msg "No updates available.\nReturning to Main Menu.|middle" else killall mythfrontend fi echo " No updates available." else echo " Update menu to show Updates Available." mv /usr/share/mythtv/themes/defaultmenu/linhes.xml /tmp/linhes.xml.tmp sed -e '/\#Check/,/\#Check/d' < /tmp/linhes.xml.tmp > /usr/share/mythtv/themes/defaultmenu/linhes.xml mv /usr/share/mythtv/themes/defaultmenu/linhes.xml /tmp grep -va '/mythmenu' /tmp/linhes.xml > /tmp/linhes.xml.tmp echo "<!--#UpdatesAvailable-->" >> /tmp/linhes.xml.tmp echo " <button>" >> /tmp/linhes.xml.tmp echo " <type>UPGRADE</type>" >> /tmp/linhes.xml.tmp echo " <text>Updates Available</text>" >> /tmp/linhes.xml.tmp echo " <description>Updates for the LinHES system</description>" >> /tmp/linhes.xml.tmp echo " <action>MENU update2.xml</action>" >> /tmp/linhes.xml.tmp echo " </button>" >> /tmp/linhes.xml.tmp echo "<!--#UpdatesAvailable-->" >> /tmp/linhes.xml.tmp echo "</mythmenu>" >> /tmp/linhes.xml.tmp mv /tmp/linhes.xml.tmp /usr/share/mythtv/themes/defaultmenu/linhes.xml echo "<mythmenu name=\"LH_UPDATE\">" > /tmp/update3.xml.tmp #check for kernel update and warn reboot is required if grep linux /tmp/to_be_upgraded || grep nvidia /tmp/to_be_upgraded then echo "" >> /tmp/update3.xml.tmp echo " <button>" >> /tmp/update3.xml.tmp echo " <type>UPGRADE</type>" >> /tmp/update3.xml.tmp echo " <text>REBOOT REQUIRED</text>" >> /tmp/update3.xml.tmp echo " <description>Some packages require a reboot</description>" >> /tmp/update3.xml.tmp echo " <action>NONE</action>" >> /tmp/update3.xml.tmp echo " </button>" >> /tmp/update3.xml.tmp fi #create menu items for each pkg to be upgraded while read line; do echo "" >> /tmp/update3.xml.tmp echo " <button>" >> /tmp/update3.xml.tmp echo " <type>UPGRADE</type>" >> /tmp/update3.xml.tmp echo " <text>$line</text>" >> /tmp/update3.xml.tmp echo " <description>$line</description>" >> /tmp/update3.xml.tmp echo " <action>NONE</action>" >> /tmp/update3.xml.tmp echo " </button>" >> /tmp/update3.xml.tmp done < "/tmp/to_be_upgraded" echo "</mythmenu>" >> /tmp/update3.xml.tmp mv /tmp/update3.xml.tmp /usr/share/mythtv/themes/defaultmenu/update3.xml #show LinHES update message on main menu echo " Showing update message in LinHES theme." sudo sed -i '/LinHES UPDATE MESSAGE/c\ <!--LinHES UPDATE MESSAGE-->' /usr/share/mythtv/themes/LinHES/menu-ui.xml dsply $1 fi } # Command line argument handling SILENT=false while getopts "hs" OPT ; do case $OPT in h) usage 0 ;; s) SILENT=true ;; *) usage 1 ;; esac done # Check for extra cruft on the command line... shift $(($OPTIND - 1)) [ -n "$*" ] && usage 1 dsply $SILENT chck $SILENT