summaryrefslogtreecommitdiffstats
path: root/abs/core/LinHES-config/myth_settings_wrapper.sh
diff options
context:
space:
mode:
authorJames Meyer <james.meyer@operamail.com>2012-04-21 18:26:48 (GMT)
committerJames Meyer <james.meyer@operamail.com>2012-04-21 18:26:48 (GMT)
commit1acb6351868760d8f9705a5ee4282dfa91cd5252 (patch)
tree095ffcf38ea84f04c95ae74fd0dbf03d583996b5 /abs/core/LinHES-config/myth_settings_wrapper.sh
parentc6e57b34bcfc0102646f8d6167d8818aa51404ef (diff)
downloadlinhes_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.sh249
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
+
+