summaryrefslogtreecommitdiffstats
path: root/abs/core/LinHES-config/restore_default_settings.sh
diff options
context:
space:
mode:
authorCecil Hugh Watson <knoppmyth@gmail.com>2009-09-26 01:57:08 (GMT)
committerCecil Hugh Watson <knoppmyth@gmail.com>2009-09-26 01:57:08 (GMT)
commit7b29169fff9e7c624890c5edffe85def8a293136 (patch)
tree47753889faa3a2063b66d1c7e7681e703eb1b39a /abs/core/LinHES-config/restore_default_settings.sh
parentc491dea779dac29afff3578bf8245943817c2339 (diff)
downloadlinhes_pkgbuild-7b29169fff9e7c624890c5edffe85def8a293136.zip
linhes_pkgbuild-7b29169fff9e7c624890c5edffe85def8a293136.tar.gz
linhes_pkgbuild-7b29169fff9e7c624890c5edffe85def8a293136.tar.bz2
LinHES 6.01.00
Diffstat (limited to 'abs/core/LinHES-config/restore_default_settings.sh')
-rwxr-xr-xabs/core/LinHES-config/restore_default_settings.sh362
1 files changed, 362 insertions, 0 deletions
diff --git a/abs/core/LinHES-config/restore_default_settings.sh b/abs/core/LinHES-config/restore_default_settings.sh
new file mode 100755
index 0000000..dcf5e23
--- /dev/null
+++ b/abs/core/LinHES-config/restore_default_settings.sh
@@ -0,0 +1,362 @@
+#!/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"
+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
+
+
+function CMD_DEFINE () {
+ #add override check
+ if [ x$Thistemplate = xsyssettings -a $OVERRIDE -eq 1 ]
+ then
+ MYSQLCMD="mysql --local-infile -s -u$MYTHDBUSER -p$MYTHTVPASSWD -h$ovdbhost mythconverg -B --exec"
+ MYSQLCMD_C="mysql -u$MYTHDBUSER -p$MYTHTVPASSWD -h$ovdbhost mythconverg -B --exec"
+ MYSQLCMD_UPDATE_HOST="UPDATE settings set data='$oldhostname' where value='HostMyhostname' and hostname=\"$hostname\";"
+ else
+ MYSQLCMD="mysql --local-infile -s -u$MYTHDBUSER -p$MYTHTVPASSWD -h$dbhost mythconverg -B --exec"
+ MYSQLCMD_C="mysql -u$MYTHDBUSER -p$MYTHTVPASSWD -h$dbhost mythconverg -B --exec"
+ MYSQLCMD_UPDATE_HOST="select hostname from settings;"
+ fi
+}
+
+function SQL_DEFINE () {
+ thostname=`echo ${hostname}|tr -C [:alpha:] _`
+ echo "Using $thostname for temp table postfix"
+
+ #$1 is the table name
+ if [ $1 = "settings" ]
+ then
+ ALTERSQL="Alter table temp_${1}_${thostname} add unique ( value )"
+ else
+ ALTERSQL=";"
+ fi
+
+ CREATESQL="create table temp_${1}_${thostname} like $1;"
+ COPY_TMP_SQL="replace into temp_${1}_${thostname} (select * from $1 where hostname=\"$hostname\");"
+ INSERTSQL="LOAD DATA local INFILE '/tmp/$1.txt' REPLACE INTO TABLE temp_${1}_${thostname} FIELDS TERMINATED BY '\t';"
+ #INSERTSQL="LOAD DATA local INFILE '$TEMPLATES/$Thistemplate/$1.txt' REPLACE INTO TABLE temp_${1}_${hostname} FIELDS TERMINATED BY '\t';"
+ DROPSQL="delete from $1 where hostname=\"$hostname\";"
+ COPY_BCK_SQL="replace into $1 (select * from temp_${1}_${thostname} where hostname=\"$hostname\");"
+ DROP_TABLE="Drop table temp_${1}_${thostname}"
+}
+
+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
+
+}
+
+
+
+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
+
+#setup the Mysql commands
+CMD_DEFINE
+
+$MYSQLCMD_C "show tables" > /dev/null
+status=$?
+if [ $status = 1 ]
+then
+ echo "$@ failed"
+ echo "$@ failed" >> /tmp/restore.out
+ exit 1
+fi
+
+
+
+
+
+
+
+case $OPERATION in
+
+ restore)
+ #used to restore settings from syssettings
+ if [ -d $TEMPLATES/$Thistemplate ]
+ then
+ cd $TEMPLATES/$Thistemplate
+ if [ $loadhost = false ]
+ then
+ for i in $TABLES
+ do
+ SQL_DEFINE $i
+ sed -e "s/REPLACEME/$hostname/g" $i.txt > /tmp/$i.txt
+ #echo $MYSQLCMD "$SELECTSQL"
+ echo $i
+ $MYSQLCMD "$CREATESQL"
+ $MYSQLCMD "$ALTERSQL"
+ $MYSQLCMD "$COPY_TMP_SQL"
+ $MYSQLCMD "$INSERTSQL"
+ $MYSQLCMD "$DROPSQL"
+ $MYSQLCMD "$COPY_BCK_SQL "
+ $MYSQLCMD "$DROP_TABLE "
+ #rm /tmp/$i.txt
+ done
+ fi
+ if [ $loadhost = true ]
+ then
+ #only load the settings table with values HOST
+ i=settings
+ SQL_DEFINE $i
+ sed -e "s/REPLACEME/$hostname/g" $i.txt > /tmp/$i.txt
+ echo $i
+ $MYSQLCMD "$CREATESQL"
+ $MYSQLCMD "$ALTERSQL"
+ $MYSQLCMD "$INSERTSQL"
+ $MYSQLCMD "$COPY_TMP_SQL"
+ $MYSQLCMD "$DROPSQL"
+ $MYSQLCMD "$COPY_BCK_SQL"
+ $MYSQLCMD "$DROP_TABLE "
+ fi
+ else
+ echo "couldn't find $TEMPLATES/$Thistemplate"
+ fi
+ ;;
+
+ save)
+
+ if [ ! -d $TEMPLATES/$Thistemplate ]
+ then
+ mkdir -p $TEMPLATES/$Thistemplate
+ fi
+
+ cd $TEMPLATES/$Thistemplate
+ for i in $TABLES
+ do
+ EXTRACLAUSE=""
+ case $i in
+ settings)
+ EXTRACLAUSE="and not (value like \"BackendServerIP\") and not (value like \"locale\") order by value"
+ SQL="select value,data,'REPLACEME' as hostname from $i where hostname=\"$hostname\" "$EXTRACLAUSE" ;"
+ # SQL="select * from $i where hostname=\"$hostname\" "$EXTRACLAUSE" ;"
+ $MYSQLCMD_C "$SQL" > $TEMPLATES/$Thistemplate/$i.txt
+ ;;
+ keybindings)
+ SQL="select context,action,description,keylist,'REPLACEME' as hostname from $i where hostname=\"$hostname\" "$EXTRACLAUSE" ;"
+ $MYSQLCMD_C "$SQL" > $TEMPLATES/$Thistemplate/$i.txt
+ ;;
+ esac
+ # sed -e "s/$hostname/REPLACEME/g" $i > $i.txt && rm $i
+
+ done
+ ;;
+
+ load)
+
+ #will load both default_1 and default_2 unless either file is not found
+ for i in default_1 default_2
+ do
+ if [ -f $TEMPLATES/$i/settings.txt ]
+ then
+ echo $i
+ for tablename in $TABLES
+ do
+ #create table
+ CREATESQL="create table IF NOT EXISTS ${tablename}_${i} like $tablename;"
+ $MYSQLCMD_C "$CREATESQL"
+ #truncate table
+ TRUNCATESQL="truncate ${tablename}_${i} "
+ $MYSQLCMD_C "$TRUNCATESQL"
+ #load table
+ INSERTSQL="LOAD DATA local INFILE '$TEMPLATES/$i/$tablename.txt' REPLACE INTO TABLE ${tablename}_${i} FIELDS TERMINATED BY '\t';"
+ $MYSQLCMD_C "$INSERTSQL"
+ #update_hostname
+ UPDATEHOSTNAMESQL="update ${tablename}_${i} set hostname='$i' ; "
+ $MYSQLCMD_C "$UPDATEHOSTNAMESQL"
+ done
+ else
+
+ echo "couldn't find $TEMPLATES/$i/settings.txt template to load"
+ fi
+ CREATESQL="create table IF NOT EXISTS settings_user1 like settings;"
+ $MYSQLCMD_C "$CREATESQL"
+ CREATESQL="create table IF NOT EXISTS settings_user2 like settings;"
+ $MYSQLCMD_C "$CREATESQL"
+ CREATESQL="create table IF NOT EXISTS settings_user3 like settings;"
+ $MYSQLCMD_C "$CREATESQL"
+
+ CREATESQL="create table IF NOT EXISTS keybindings_user1 like keybindings;"
+ $MYSQLCMD_C "$CREATESQL"
+ CREATESQL="create table IF NOT EXISTS keybindings_user2 like keybindings;"
+ $MYSQLCMD_C "$CREATESQL"
+ CREATESQL="create table IF NOT EXISTS keybindings_user3 like keybindings;"
+ $MYSQLCMD_C "$CREATESQL"
+ done
+;;
+
+
+
+ BECONFIG)
+ if [ $SYSTEMTYPE = "master" ]
+ then
+ $MYSQLCMD_C "UPDATE settings set data='${IP_ADDRESS}' where value='MasterServerIP';"
+ $MYSQLCMD_C "delete from settings where value='BackendServerIP' and hostname=\"$hostname\";"
+ $MYSQLCMD_C "REPLACE INTO settings set data='${IP_ADDRESS}' , value='BackendServerIP' , hostname=\"$hostname\";"
+ fi
+
+ if [ $SYSTEMTYPE = "slave" ]
+ then
+ $MYSQLCMD_C "delete from settings where value='BackendServerIP' and hostname=\"$hostname\";"
+ $MYSQLCMD_C "REPLACE INTO settings set data='${IP_ADDRESS}' , value='BackendServerIP' , hostname=\"$hostname\";"
+ fi
+ ;;
+ ZIP)
+ $MYSQLCMD_C "delete from settings where value='locale' and hostname=\"$hostname\";"
+ $MYSQLCMD_C "REPLACE INTO settings set data='$ZIPCODE' , value='locale' , hostname=\"$hostname\";"
+ $MYSQLCMD_C "delete from settings where value='MythMovies.ZipCode' and hostname=\"$hostname\";"
+ $MYSQLCMD_C "REPLACE INTO settings set data='$ZIPCODE', value='MythMovies.ZipCode' , hostname=\"$hostname\";"
+ ;;
+ MUSICFRONT)
+ ALSADEVICE
+ $MYSQLCMD_C "delete from settings where value='AudioOutputDevice' and hostname=\"$hostname\";"
+ $MYSQLCMD_C "delete from settings where value='MixerDevice' and hostname=\"$hostname\";"
+ $MYSQLCMD_C "REPLACE INTO settings set data='$SoundDevice', value='AudioOutputDevice' , hostname=\"$hostname\";"
+ $MYSQLCMD_C "REPLACE INTO settings set data='$MixerDevice', value='MixerDevice' , hostname=\"$hostname\";"
+ #need to reload the settings.
+ systemconfig.sh reloadfe
+ ;;
+ MUSICMYTH)
+ ALSADEVICE
+ $MYSQLCMD_C "delete from settings where value='MusicAudioDevice' and hostname=\"$hostname\";"
+ $MYSQLCMD_C "REPLACE INTO settings set data='$SoundDevice', value='MusicAudioDevice' , hostname=\"$hostname\";"
+ ;;
+ uhostname)
+ #used when the hostname is changed.
+ TABLES="settings capturecard keybindings storagegroup recorded"
+ for i in $TABLES
+ do
+ USQL="update $i set hostname=\"$oldhostname\" where hostname=\"$hostname\" ;"
+ $MYSQLCMD_C "$USQL"
+ done
+
+ ;;
+ USERJOBALLOW)
+ SQL="update settings set data='1' where value like 'JobAllowUserJob%' and hostname=\"$hostname\" ;"
+ $MYSQLCMD_C "$SQL"
+ ;;
+
+ ACCESSCONTROL)
+ LIST="Hostaccessnetwork Hostaccesshostype HostaccesshostypeSystemtype Hostaccessmisc Hostaccesssleep Hostaccessadvanced HostaccessadvancedX Hostaccesssound"
+
+ for i in $LIST
+ do
+ $MYSQLCMD_C "delete from settings where value=\"$i\" and hostname=\"$hostname\";"
+ $MYSQLCMD_C "REPLACE INTO settings set data='1', value=\"$i\" , hostname=\"$hostname\";"
+ done
+ SQL="update settings set data='0' where value='HostaccesshostypeSystemtype' and hostname=\"$hostname\" ;"
+ $MYSQLCMD_C "$SQL"
+ SQL="update settings set data='0' where value='Hostaccessuser' and hostname=\"$hostname\" ;"
+ $MYSQLCMD_C "$SQL"
+ ;;
+ esac
+
+#SELECT * INTO OUTFILE 'data.txt'
+# FIELDS TERMINATED BY ','
+# FROM table2;
+
+