diff options
author | James Meyer <james.meyer@operamail.com> | 2012-04-21 18:26:48 (GMT) |
---|---|---|
committer | James Meyer <james.meyer@operamail.com> | 2012-04-21 18:26:48 (GMT) |
commit | 1acb6351868760d8f9705a5ee4282dfa91cd5252 (patch) | |
tree | 095ffcf38ea84f04c95ae74fd0dbf03d583996b5 /abs/core/LinHES-config/myth_settings_wrapper.sh | |
parent | c6e57b34bcfc0102646f8d6167d8818aa51404ef (diff) | |
download | linhes_pkgbuild-1acb6351868760d8f9705a5ee4282dfa91cd5252.zip linhes_pkgbuild-1acb6351868760d8f9705a5ee4282dfa91cd5252.tar.gz linhes_pkgbuild-1acb6351868760d8f9705a5ee4282dfa91cd5252.tar.bz2 |
LinHES-config: add myth_settings_wrapper, and convert exisiting programs to use it.
myth_settings_wrapper.sh is a wrapper around mythutils and is used to update a few database settings and also to save/restore settings during install.
Diffstat (limited to 'abs/core/LinHES-config/myth_settings_wrapper.sh')
-rw-r--r-- | abs/core/LinHES-config/myth_settings_wrapper.sh | 249 |
1 files changed, 249 insertions, 0 deletions
diff --git a/abs/core/LinHES-config/myth_settings_wrapper.sh b/abs/core/LinHES-config/myth_settings_wrapper.sh new file mode 100644 index 0000000..bcba9d1 --- /dev/null +++ b/abs/core/LinHES-config/myth_settings_wrapper.sh @@ -0,0 +1,249 @@ +#!/bin/bash +. /etc/profile +. /etc/systemconfig +shopt -s -o nounset +echo $@ >> /tmp/restore.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" +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 <<EOF + +<!DOCTYPE mythutils_exported_settings> +<exported_xml> + <record> + <data>$xml_data</data> + <hostname>$xml_hostname</hostname> + <table>$xml_table</table> + <value>$xml_value</value> + </record> +</exported_xml> +EOF + +} + + + +if [ $# -eq 0 ] +then + echo "Valid options are:" + echo " -c (save|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 + 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 + ;; + o) OVERRIDE=1 + ;; + + esac +done + +echo $OVERRIDE + +case $OPERATION in + + restore) + #used to restore settings from syssettings + if [ -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 + + ;; + + load) + #this loads the distro default file, it's not active by any hosts + mythutil --import-settings --infile $TEMPLATES/$Thistemplate/distro_default.xml + ;; + + + + BECONFIG) + if [ $SYSTEMTYPE = "master" ] + then + define_xml ${IP_ADDRESS} $hostname settings BackendServerIP + load_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 + 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 + + ;; + USERJOBALLOW) + echo "UserJOBALLOW callremoved" + + ;; + + ACCESSCONTROL) + LIST="Hostaccessnetwork Hostaccesshostype HostaccesshostypeSystemtype Hostaccessmisc Hostaccesssleep Hostaccessadvanced HostaccessadvancedX Hostaccesssound" + + for i in $LIST + do + define_xml 1 $i settings $hostname + load_xml $gen_xml + done + + LIST="HostaccesshostypeSystemtype Hostaccessuser" + for i in $LIST + do + define_xml 0 $i settings $hostname + load_xml $gen_xml + done + ;; +esac + + |