#!/bin/bash MYTH_RUN_STATUS="1" . /etc/profile . /etc/systemconfig shopt -s -o nounset echo $@ >> /tmp/wrapper.out #TEMPLATES="/usr/share/templates/settings" TEMPLATES="$TEMPLATES/settings" TABLES="settings keybindings jumppoints" MYTHDBUSER=mythtv MYTHTVPASSWD=mythtv declare -r OPTSTRING="c:e:t:d:h:s:a:z:Ho:n:j:" Thistemplate="" declare -i OVERRIDE=0 declare -i EVERYTHING=0 gen_xml="/tmp/generated.xml" function ARG_ERR() { if [ x$OPTARG = "x" ] then echo "$SWITCH NEEDS AND ARG" exit 11 fi } function ALSADEVICE () { #ALSA:hw:1,4 if [ x$Audiotype = xALSA ] then SoundDevice=ALSA:$SoundDevice MixerDevice="ALSA:default" else MixerDevice="/dev/mixer" fi } function load_xml(){ xml_file=$1 mythutil --import-settings --infile $xml_file cat $xml_file } function define_xml() { xml_data=${1} xml_hostname=${2} xml_table=${3} xml_value=${4} cat >$gen_xml < $xml_data $xml_hostname $xml_table
$xml_value
EOF } if [ $# -eq 0 ] then echo "Valid options are:" echo " -c (save|save-default|restore|load|uhostname|BECONFIG|ZIP|ACCESSCONTROL)" echo " -t (syssettings|hostsettings)" echo " -d databasename" echo " -h hostname" echo " -s systemtype (master|slave|standalone|frontendonly)" echo " -a ipaddress" echo " -z zipcode" echo " -o override (only used upgrade installs)" exit 1 fi while getopts "$OPTSTRING" SWITCH do case $SWITCH in # \?) echo "unkown option" # exit 11 ;; c) echo "$SWITCH" "$OPTARG" ARG_ERR OPERATION=$OPTARG ;; t) echo "$SWITCH" "$OPTARG" ARG_ERR Thistemplate=$OPTARG if [ x$Thistemplate = x"syssettings" ] then echo "template is syssettings" loadhost=false elif [ x$Thistemplate = x"hostsettings" ] then echo "template is hostsettings" Thistemplate=syssettings loadhost=true elif [ x$Thistemplate = x"distro_default" ] then echo "template is distro_default" loadhost=false elif [ x$Thistemplate = x"custom" ] then echo "template is custom" else echo "invalid template name" exit 1 fi ;; d) echo "$SWITCH" "$OPTARG" ARG_ERR if [ $OVERRIDE = 1 ] then ovdbhost=$OPTARG else dbhost=$OPTARG fi ;; h) echo "$SWITCH" "$OPTARG" ARG_ERR if [ $OVERRIDE = 1 ] then oldhostname=$hostname hostname=$OPTARG else hostname=$OPTARG fi ;; s) echo "$SWITCH" "$OPTARG" ARG_ERR SYSTEMTYPE=$OPTARG ;; a) echo "$SWITCH" "$OPTARG" ARG_ERR IP_ADDRESS=$OPTARG ;; z) echo "$SWITCH" "$OPTARG" ARG_ERR ZIPCODE=$OPTARG ;; n) echo "$SWITCH" "$OPTARG" newhostname=$OPTARG ;; j) echo "$SWITCH" "$OPTARG" oldhostname=$OPTARG ;; o) OVERRIDE=1 ;; esac done echo $OVERRIDE case $OPERATION in restore) #used to restore settings from syssettings if [ x$Thistemplate = "xdistro_default" ] then mythutil --restore-settings --groupname distro_default elif [ -d $TEMPLATES/$Thistemplate ] then mythutil --import-settings --infile $TEMPLATES/$Thistemplate/syssettings.xml --hostname $hostname else echo "couldn't find $TEMPLATES/$Thistemplate" fi ;; save) #export settings from database to xml file if [ ! -d $TEMPLATES/$Thistemplate ] then mkdir -p $TEMPLATES/$Thistemplate fi mythutil --export-settings --outfile $TEMPLATES/$Thistemplate/syssettings.xml --generic ;; save-default) #export settings from database to xml file Thistemplate="system-default" if [ ! -d $TEMPLATES/$Thistemplate ] then mkdir -p $TEMPLATES/$Thistemplate fi mythutil --export-settings --outfile $TEMPLATES/$Thistemplate/distro_default.xml --distro-default ;; load) if [ x$Thistemplate = "xcustom" ] then define_xml $5 $hostname settings $6 load_xml $gen_xml > /tmp/load_xml_custom.log else #this loads the distro default file, it's not active by any hosts Thistemplate="system-default" mythutil --import-settings --infile $TEMPLATES/$Thistemplate/distro_default.xml fi ;; ZMCONFIG) define_xml ${IP_ADDRESS} $hostname settings ZoneMinderServerIP load_xml $gen_xml define_xml "6548" $hostname settings ZoneMinderServerPort load_xml $gen_xml ;; BECONFIG) if [ $SYSTEMTYPE = "master" ] then define_xml ${IP_ADDRESS} $hostname settings BackendServerIP load_xml $gen_xml define_xml ${IP_ADDRESS} $hostname settings BackendServerAddr load_xml $gen_xml define_xml ${IP_ADDRESS} '' settings MasterServerIP load_xml $gen_xml fi if [ $SYSTEMTYPE = "slave" ] then define_xml ${IP_ADDRESS} $hostname settings BackendServerIP load_xml $gen_xml define_xml ${IP_ADDRESS} $hostname settings BackendServerAddr load_xml $gen_xml fi if [ $SYSTEMTYPE = "standalone" ] then define_xml "127.0.0.1" $hostname settings BackendServerIP load_xml $gen_xml define_xml "127.0.0.1" '' settings MasterServerIP load_xml $gen_xml fi if [ $SYSTEMTYPE = "frontendonly" ] then define_xml '' $hostname settings BackendServerIP load_xml $gen_xml define_xml '' $hostname settings BackendServerAddr load_xml $gen_xml fi ;; ZIP) define_xml $ZIPCODE $hostname settings locale load_xml $gen_xml #$MYSQLCMD_C "delete from settings where value='locale' and hostname=\"$hostname\";" #$MYSQLCMD_C "REPLACE INTO settings set data='$ZIPCODE' , value='locale' , hostname=\"$hostname\";" ;; MUSICFRONT) ALSADEVICE define_xml $SoundDevice $hostname settings AudioOutputDevice load_xml $gen_xml define_xml $MixerDevice $hostname settings MixerDevice load_xml $gen_xml #need to reload the settings. systemconfig.sh reloadfe ;; MUSICMYTH) ALSADEVICE define_xml $SoundDevice $hostname settings MusicOutputDevice load_xml $gen_xml ;; uhostname) #used when the hostname is changed. # #call myth_util $oldhostname $hostname mythutil --change-hostname --new-host $newhostname --old-host $oldhostname mythutil --import-settings --infile $TEMPLATES/$Thistemplate/syssettings.xml --hostname $newhostname ;; USERJOBALLOW) echo "UserJOBALLOW callremoved" ;; ACCESSCONTROL) LIST="Hostaccessnetwork Hostaccesshostype HostaccesshostypeSystemtype Hostaccessmisc Hostaccesssleep Hostaccessadvanced HostaccessadvancedX Hostaccesssound" for i in $LIST do define_xml 1 $hostname settings $i load_xml $gen_xml done LIST="HostaccesshostypeSystemtype Hostaccessuser" for i in $LIST do define_xml 0 $hostname settings $i load_xml $gen_xml done ;; esac