From 1acb6351868760d8f9705a5ee4282dfa91cd5252 Mon Sep 17 00:00:00 2001 From: James Meyer Date: Sat, 21 Apr 2012 13:26:48 -0500 Subject: 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. --- abs/core/LinHES-config/PKGBUILD | 11 +- abs/core/LinHES-config/install_db_chroot.sh | 13 +- abs/core/LinHES-config/mv_install.py | 12 +- abs/core/LinHES-config/myth_settings_wrapper.sh | 249 ++++++++++++++++++++++++ 4 files changed, 269 insertions(+), 16 deletions(-) create mode 100644 abs/core/LinHES-config/myth_settings_wrapper.sh diff --git a/abs/core/LinHES-config/PKGBUILD b/abs/core/LinHES-config/PKGBUILD index de71e5b..6c0ad04 100644 --- a/abs/core/LinHES-config/PKGBUILD +++ b/abs/core/LinHES-config/PKGBUILD @@ -1,6 +1,6 @@ pkgname=LinHES-config pkgver=2.3 -pkgrel=64 +pkgrel=65 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev LinHes-config ) pkgdesc="Install and configure your system" depends=('bc' 'libstatgrab' 'mysql-python' 'expect' 'curl' 'dnsutils' 'parted' @@ -18,7 +18,8 @@ source=(mv_install.py systemconfig.sh install_db_chroot.sh restore_default_settings.sh - xconfig.sh + myth_settings_wrapper.sh + xconfig.sh timezip.py soundconfig.sh LinHES-release @@ -68,6 +69,7 @@ build() { install -m 0755 install_db_chroot.sh $MVDIR/bin/install_db_chroot.sh install -m 0755 restore_km_db_chroot.sh $MVDIR/bin/restore_km_db_chroot.sh install -m 0755 restore_default_settings.sh $MVDIR/bin/restore_default_settings.sh + install -m 0755 myth_settings_wrapper.sh $MVDIR/bin/myth_settings_wrapper.sh install -m 0755 soundconfig.sh $MVDIR/bin/soundconfig.sh install -m 0755 networkconfig.sh $MVDIR/bin/networkconfig.sh install -m 0755 create_master.sh $MVDIR/bin/create_master.sh @@ -101,15 +103,16 @@ build() { install -m 0755 issue $startdir/pkg/etc/issue } -md5sums=('64fad755c12f8eb12940e216e403354e' +md5sums=('ffd40d21a9a868364045368053cb69c9' '16b98fcb3753ef6cfc35075c326d30e4' 'e36da536dd651ef182e7642337889e77' '985891a43f7c4c983eb2a362162f1a0f' '2f0b85d37b15956b3d92419c886e040c' '893aa1adae52b641ab8cdac53ecf98c0' 'c20f73d4da5d7e15e1f3eb85c7dcb49a' - '8ac1cfd2eca0f641737da0d0aca416a7' + '68199e861c2933ccbb84735b9b440157' '9ae8d79f620c6d19973c55c32a921874' + '6aea8876ab690e0edf817fe6cb5b7abc' '960017a34d9cc78af6298f45aad6eb8e' 'ecf9e5df20683a769c4a8a8f2d65de85' '6d32a88e76b0a97b0ce67d37ef6394aa' diff --git a/abs/core/LinHES-config/install_db_chroot.sh b/abs/core/LinHES-config/install_db_chroot.sh index 94305d2..bb7bbcf 100644 --- a/abs/core/LinHES-config/install_db_chroot.sh +++ b/abs/core/LinHES-config/install_db_chroot.sh @@ -31,17 +31,18 @@ do then pacman --noconfirm -R mythdb-initial pacman --noconfirm -S mythdb-initial - $MV_ROOT/bin/restore_default_settings.sh -c load - DISPLAY=127.0.0.1:0 $MV_ROOT/bin/MythVantage -t restore,default_1 - $MV_ROOT/bin/restore_default_settings.sh -c restore -t syssettings + $MV_ROOT/bin/myth_settings_wrapper.sh -c load + #change this to mythutil + #DISPLAY=127.0.0.1:0 $MV_ROOT/bin/MythVantage -t restore,default_1 + $MV_ROOT/bin/myth_settings_wrapper.sh -c restore -t syssettings $MV_ROOT/bin/systemconfig.sh misc,hostype,this_is_install update_db_settings HostServiceMythWEB "1" echo 'UseMythWEB="1"' >> /etc/systemconfig #update database to allow user jobs on this host. - $MV_ROOT/bin/restore_default_settings.sh -c USERJOBALLOW - $MV_ROOT/bin/restore_default_settings.sh -c ACCESSCONTROL + $MV_ROOT/bin/myth_settings_wrapper.sh -c USERJOBALLOW + $MV_ROOT/bin/myth_settings_wrapper.sh -c ACCESSCONTROL if [ -d /data/srv/mysql/mythconverg ] #if [ -d /var/lib/mysql/mythconverg ] then @@ -51,7 +52,7 @@ do fi # if [ $SystemType = "Master_backend" ] # then -# $MV_ROOT/bin/restore_default_settings.sh -c BECONFIG -s master -a $dbhost +# $MV_ROOT/bin/myth_settings_wrapper.sh -c BECONFIG -s master -a $dbhost # fi fi fi diff --git a/abs/core/LinHES-config/mv_install.py b/abs/core/LinHES-config/mv_install.py index 9763522..a7389ca 100755 --- a/abs/core/LinHES-config/mv_install.py +++ b/abs/core/LinHES-config/mv_install.py @@ -1022,7 +1022,7 @@ def restore_default_settings(): logging.debug(" MVROOT was not defined, using the default value") MVROOT = "/usr/MythVantage" logging.info("Saving syssettings") - cmd = "%s/bin/restore_default_settings.sh -c save -t syssettings -h %s -d localhost" %(MVROOT, data_config.MVHOSTNAME) + cmd = "%s/bin/myth_settings_wrapper.sh -c save -t syssettings -h %s -d localhost" %(MVROOT, data_config.MVHOSTNAME) runcmd(cmd) SE = os.environ["TEMPLATES"]+"/settings/syssettings/" cp_and_log(SE, data_config.MOUNTPOINT+SE) @@ -1102,7 +1102,7 @@ def full_install(hostoptions): #logging.debug(" MVROOT was not defined, using the default value") #MVROOT="/usr/MythVantage" #logging.info("Saving syssettings") - #cmd="%s/bin/restore_default_settings.sh -c save -t syssettings -h %s -d localhost" %(MVROOT, data_config.MVHOSTNAME) + #cmd="%s/bin/myth_settings_wrapper.sh -c save -t syssettings -h %s -d localhost" %(MVROOT, data_config.MVHOSTNAME) #runcmd(cmd) #SE=os.environ["TEMPLATES"]+"/settings/syssettings" #cp_and_log(SE, data_config.MOUNTPOINT+SE) @@ -1138,7 +1138,7 @@ def full_install(hostoptions): cmd = " chroot %s DISPLAY=127.0.0.1:0 %s/bin/MythVantage -t restore, default 1" %(data_config.MOUNTPOINT, MVROOT) runcmd(cmd) # Need to check for to touch /tmp/.dbsysfailed - cmd = " chroot %s %s/bin/restore_default_settings.sh -c restore -t syssettings " %(data_config.MOUNTPOINT, MVROOT) + cmd = " chroot %s %s/bin/myth_settings_wrapper.sh -c restore -t syssettings " %(data_config.MOUNTPOINT, MVROOT) runcmd(cmd) if ( 'x' == '1' ): logging.debug("touching /tmp/.dbsysfailed") @@ -1148,7 +1148,7 @@ def full_install(hostoptions): rc = runcmd(cmd)[0] if rc != 0 : error_out("Running systemconfig") - cmd = "chroot %s %s/bin/restore_default_settings.sh -c ACCESSCONTROL " %(data_config.MOUNTPOINT, MVROOT) + cmd = "chroot %s %s/bin/myth_settings_wrapper.sh -c ACCESSCONTROL " %(data_config.MOUNTPOINT, MVROOT) runcmd(cmd) umount_bind_chroot() cmd = " touch %s%s/.configure" %(data_config.MOUNTPOINT, data_config.MYTHHOME) @@ -1391,7 +1391,7 @@ def upgrade(hostoptions): runcmd(cmd) if os.path.exists("/tmp/etc/KnoppMyth-version"): - cmd = " chroot %s %s/bin/restore_default_settings.sh -c restore -t hostsettings " %(data_config.MOUNTPOINT, MVROOT) + cmd = " chroot %s %s/bin/myth_settings_wrapper.sh -c restore -t hostsettings " %(data_config.MOUNTPOINT, MVROOT) runcmd(cmd) logging.debug("Correcting permissions because of km->linhes upgrade") cmd = " chown -R mythtv:mythtv %s" %(data_config.MOUNTPOINT+data_config.DATAMOUNT) @@ -1399,7 +1399,7 @@ def upgrade(hostoptions): cmd = " chown -R root:root %s" %(data_config.MOUNTPOINT+data_config.DATAMOUNT+"/backup") runcmd(cmd) else: - cmd = " chroot %s %s/bin/restore_default_settings.sh -c restore -t syssettings " %(data_config.MOUNTPOINT, MVROOT) + cmd = " chroot %s %s/bin/myth_settings_wrapper.sh -c restore -t syssettings " %(data_config.MOUNTPOINT, MVROOT) runcmd(cmd) logging.info("Running systemconfig in chroot 2nd time") 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 < + + + $xml_data + $xml_hostname + $xml_table
+ $xml_value +
+
+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 + + -- cgit v0.12