All pastes #969447 Raw Edit

Untitled

public text v1 · immutable
·published 2008-04-03 16:41 UTC
rendered paste body
Index: MythTV_PlugIn.cpp
===================================================================
--- MythTV_PlugIn.cpp	(revision 20423)
+++ MythTV_PlugIn.cpp	(working copy)
@@ -51,6 +51,12 @@
 
 #include "../Orbiter_Plugin/OH_Orbiter.h"
 
+#define SCRIPT_DIR             "/usr/pluto/bin"
+#define SCRIPT_SYNC_TO_DB      SCRIPT_DIR + "/MythTvSyncDB.sh"
+#define SCRIPT_TUNE            SCRIPT_DIR + "/TuneToChannel.sh"
+#define SCRIPT_RESTART_BACKEND SCRIPT_DIR + "/Restart_MythBackend.sh"
+#define SCRIPT_INITIAL_FILLDB  SCRIPT_DIR + "/MythTvInitialFillDB.sh"
+
 // For sorting channels
 static bool ChannelComparer(MythChannel *x, MythChannel *y)
 {
@@ -963,33 +969,20 @@
 		return;
 	}
 
-	UpdateMythSetting("JobAllowUserJob1","1","*");
-	UpdateMythSetting("AutoRunUserJob1","1","");
-	UpdateMythSetting("UserJob1","/usr/pluto/bin/SaveMythRecording.sh %CHANID% %STARTTIME% %DIR% %FILE%","");
-	UpdateMythSetting("UserJobDesc1","Save the recorded show into Pluto's database","");
-	UpdateMythSetting("Language","EN","*",true);
+	string cmd = SYNC_TO_DB;
+	string args = "master " + ((pDevice_Core && !pDevice_Core->m_sIPAddress.empty()) ?
+				   pDevice_Core->m_sIPAddress : m_pRouter->sDBHost_get());
 
-	UpdateMythSetting("PreferredMPEG2Decoder","xv","*");
-	UpdateMythSetting("AutoCommercialFlag","0","*");
-	UpdateMythSetting("AutoCommflagWhileRecording","0","*");
-	UpdateMythSetting("VertScanPercentage","2","*");
-	UpdateMythSetting("HorizScanPercentage","1","*");
-	UpdateMythSetting("NetworkControlEnabled","1","*");
-	UpdateMythSetting("NetworkControlPort","10001","*");
-	UpdateMythSetting("UseChromaKeyOSD","0","*");
-	UpdateMythSetting("UseOpenGLVSync","0","*");
-	UpdateMythSetting("SelectChangesChannel","1","*");
-	UpdateMythSetting("Deinterlace","1","*");
-	UpdateMythSetting("DeinterlaceFilter","bobdeint","*");
-	UpdateMythSetting("FFRewSpeed0","1","*");
-	UpdateMythSetting("FFRewSpeed1","2","*");
-	UpdateMythSetting("FFRewSpeed2","4","*");
-	UpdateMythSetting("FFRewSpeed3","8","*");
-	UpdateMythSetting("FFRewSpeed4","16","*");
+	DeviceData_Base *pDevice_App_Server = (DeviceData_Router *)
+	    m_pData->FindFirstRelatedDeviceOfCategory(DEVICECATEGORY_App_Server_CONST);
+	if (pDevice_App_Server)
+	{
+		DCE::CMD_Spawn_Application CMD_Spawn_Application(
+			m_dwPK_Device,pDevice_App_Server->m_dwPK_Device,
+			cmd, args, "", "", "", false, false, false, false);
+		SendCommand(CMD_Spawn_Application);
+	}
 
-	UpdateMythSetting("MasterServerIP",pDevice_Core && pDevice_Core->m_sIPAddress.empty()==false ? pDevice_Core->m_sIPAddress : m_pRouter->sDBHost_get( ),"");
-	UpdateMythSetting("MasterServerPort","6543","");
-
 	ListDeviceData_Router *pListDeviceData_Router = m_pRouter->m_mapDeviceByTemplate_Find(DEVICETEMPLATE_MythTV_Player_CONST);
 	if( pListDeviceData_Router )
 	{
@@ -1005,10 +998,15 @@
 				Row_DeviceTemplate *pRow_DeviceTemplate = pRow_Device_PC->FK_DeviceTemplate_getrow();
 				if( pRow_DeviceTemplate && pRow_DeviceTemplate->FK_DeviceCategory_get()!=DEVICECATEGORY_Core_CONST )
 					sHostname = "moon" + StringUtils::itos(pRow_Device_PC->PK_Device_get());
-				UpdateMythSetting("BackendServerIP",pRow_Device_PC->IPaddress_get(),sHostname);
-				UpdateMythSetting("MasterServerPort","6543",sHostname);
-				UpdateMythSetting("BackendServerPort","6543",sHostname);
-				UpdateMythSetting("BackendServerStatus","6544",sHostname);
+
+				if (pDevice_App_Server)
+				{
+					args = "slave " + pRow_Device_PC->IPaddress_get() + " " + sHostname;
+					DCE::CMD_Spawn_Application CMD_Spawn_Application(
+						m_dwPK_Device,pDevice_App_Server->m_dwPK_Device,
+						cmd, args, "", "", "", false, false, false, false);
+					SendCommand(CMD_Spawn_Application);
+				}
 			}
 			else
 			{
@@ -1353,7 +1351,9 @@
 
 				if( pRow_Device_External )
 				{
-					sSQL = "UPDATE cardinput SET externalcommand='/usr/pluto/bin/TuneToChannel.sh " + StringUtils::itos(pRow_Device_External->PK_Device_get()) + " " + StringUtils::itos(sourceid) + "' WHERE cardinputid=" + StringUtils::itos(cardinputid);
+					sSQL = "UPDATE cardinput SET externalcommand='" + SCRIPT_TUNE + " " +
+						StringUtils::itos(pRow_Device_External->PK_Device_get()) + " " +
+						StringUtils::itos(sourceid) + "' WHERE cardinputid=" + StringUtils::itos(cardinputid);
 					if( m_pDBHelper_Myth->threaded_db_wrapper_query(sSQL)>0 )
 					{
 						LoggerWrapper::GetInstance()->Write(LV_STATUS,"MythTV_PlugIn::CMD_Sync_Providers_and_Cards bModifiedRows=true %s",sSQL.c_str());
@@ -2070,7 +2070,7 @@
 
 		string sArguments = StringUtils::itos(pScanJob->m_pRow_Device_Tuner->PK_Device_get()) + "\t" + StringUtils::itos(pScanJob->m_pRow_Device_CaptureCard->PK_Device_get());
 		DCE::CMD_Spawn_Application CMD_Spawn_Application(m_dwPK_Device,pDevice_App_Server->m_dwPK_Device,
-			"/usr/pluto/bin/" + pScanJob->m_sScanJob,"scanchannels",sArguments,sScanFailed,"",false,false,false,true);
+			SCRIPT_DIR + pScanJob->m_sScanJob,"scanchannels",sArguments,sScanFailed,"",false,false,false,true);
 		string sResponse;
 		if( !SendCommand(CMD_Spawn_Application,&sResponse) || sResponse!="OK" )
 		{
@@ -2286,7 +2286,8 @@
 	if( pDevice_App_Server )
 	{
 		DCE::CMD_Spawn_Application CMD_Spawn_Application(m_dwPK_Device,pDevice_App_Server->m_dwPK_Device,
-			"/usr/bin/screen","restart_myth","-d\t-m\t-S\tRestart_Myth_Backend\t/usr/pluto/bin/Restart_MythBackend.sh","","",false,false,false,false);
+			"/usr/bin/screen", "restart_myth", "-d\t-m\t-S\tRestart_Myth_Backend\t" + SCRIPT_RESTART_BACKEND,
+			"", "", false, false, false, false);
 		CMD_Spawn_Application.m_pMessage->m_eRetry=MR_Retry;
 		SendCommand(CMD_Spawn_Application);
 
@@ -2311,7 +2312,7 @@
 	{
 		string sResponse = "fill done";
 		DCE::CMD_Spawn_Application CMD_Spawn_Application_fill(m_dwPK_Device,pDevice_App_Server->m_dwPK_Device,
-			"/usr/pluto/bin/FillDbAndFetchIcons.sh","filldb","","","",false,false,true,false);
+			SCRIPT_INITIAL_FILLDB, "filldb", "", "", "", false, false, true, false);
 		CMD_Spawn_Application_fill.m_pMessage->m_eRetry=MR_Persist;
 		if( !SendCommand(CMD_Spawn_Application_fill) )
 		{
@@ -2532,7 +2533,7 @@
 		if( pDevice_App_Server )
 		{
 			DCE::CMD_Spawn_Application CMD_Spawn_Application(m_dwPK_Device,pDevice_App_Server->m_dwPK_Device,
-				"/usr/pluto/bin/ForciblyKillProcess.sh","killmyth","mythbackend","","",false,false,false,true);
+				SCRIPT_DIR + "/ForciblyKillProcess.sh","killmyth","mythbackend","","",false,false,false,true);
 			SendCommand(CMD_Spawn_Application);
 		}
 
Index: MythTvInitialFillDB.sh
===================================================================
--- MythTvInitialFillDB.sh	(revision 0)
+++ MythTvInitialFillDB.sh	(revision 0)
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+. /usr/pluto/bin/Config_Ops.sh
+
+FILLDB=/usr/bin/mythfilldatabase
+
+# If the user installed a their own mythfilldatabase, adjust..
+if test -f /usr/local/bin/mythfilldatabase ; then
+	FILLDB=/usr/local/bin/mythfilldatabase
+fi
+
+# Run mythfilldatabase on a single core if possible
+if test x"" != x'which taskset' ; then
+	FILLDB="taskset -c 0 "$FILLDB
+fi
+
+HAS_IGNORE_BACKEND=`$FILLDB --help | grep ignore-backend`
+if test x"" != x"$HAS_IGNORE_BACKEND" ; then
+	FILLDB=$FILLDB" --ignore-backend"
+fi
+
+# Lock the MythFillDatabase lock to another script from running mythfilldatabase
+echo "MythTvInitialFillDB.sh waiting for MythFillDatabase lock"
+WaitLock "MythFillDatabase" "MythTvInitialFillDB.sh" nolog
+echo "MythTvInitialFillDB.sh got MythFillDatabase lock"
+
+# lock schema, this makes sure that we don't run this while the DB schema is
+# being upgraded by another mythtv process.
+echo "LOCK TABLE schemalock WRITE; UNLOCK TABLES;" | mysql mythconverg
+
+# Download today's scheduling data, so that we can tune LiveTV immediately
+$FILLDB --refresh-today --max-days 1
+
+# Download the channel icons
+$FILLDB --import-icon-map /home/mythtv/master_iconmap.xml --update-icon-map
+
+# Myth puts the icons in the current user's home directory.  We want /home/mythtv
+echo "UPDATE channel SET icon=REPLACE(icon,'/root/.mythtv','/home/mythtv')" | mysql mythconverg
+# Move the icons..
+mkdir -p /home/mythtv/channels
+if test x`echo/root/.mythtv/channels/*`x != x""x ; then
+	mv -f /root/.mythtv/channels/* /home/mythtv/channels
+	chmod a+r /home/mythtv/channels/*
+fi
+
+# Send a sync command to fix up the directories
+/usr/pluto/bin/MessageSend $DCERouter -targetType template -r 0 36 1 824
+
+# Restart all the backends..
+/usr/pluto/bin/Restart_Backend_With_SchemaLock.sh
+
+# Tell the user it's now safe to use MythTV
+R=$(echo "SELECT * FROM videosource LIMIT 1" | mysql mythconverg)
+if [[ -n "$R" ]]; then
+	# Notify all the orbiters that myth is ready to be used
+	/usr/pluto/bin/MessageSend $DCERouter -targetType template -r 0 12 1 406 9 \
+		"MythTV is ready.  However it may take several more minutes before the guide data is fully populated." 102 300
+	/usr/pluto/bin/MessageSend $DCERouter -targetType template -r 0 36 1 910 9 \
+		"Finished retrieving channels"
+fi
+
+# Unlock the MythFillDatabase lock
+Unlock "MythFillDatabase" "MythTvInitialFillDB.sh" nolog
+
+# if we ran without a mythbackend connection, tell the backend to reschedule..
+if test x"" != x"$HAS_IGNORE_BACKEND" ; then
+	mythbackend --resched > /dev/null &
+fi

Property changes on: MythTvInitialFillDB.sh
___________________________________________________________________
Name: svn:executable
   + *

Index: FillDbAndFetchIcons.sh
===================================================================
--- FillDbAndFetchIcons.sh	(revision 20423)
+++ FillDbAndFetchIcons.sh	(working copy)
@@ -1,63 +0,0 @@
-#!/bin/bash
-
-. /usr/pluto/bin/Config_Ops.sh
-
-FILLDB=/usr/bin/mythfilldatabase
-
-# If the user installed a their own mythfilldatabase, adjust..
-if test -f /usr/local/bin/mythfilldatabase ; then
-	FILLDB=/usr/bin/mythfilldatabase
-fi
-
-# Run mythfilldatabase on a single core if possible
-if test x"" != x'which taskset' ; then
-	FILLDB="taskset -c 0 "$FILLDB
-fi
-
-HAS_IGNORE_BACKEND=`$FILLDB --help | grep ignore-backend`
-if test x"" != x"$HAS_IGNORE_BACKEND" ; then
-	FILLDB=$FILLDB" --ignore-backend"
-fi
-
-# Download the minimum data needed to get the channel lists
-# $FILLDB --only-update-channels
-# ^^^^ Not needed since we download today's data below...
-
-# Download today's scheduling data, so that we can tune LiveTV immediately
-$FILLDB --refresh-today --max-days 1
-
-# Download the channel icons
-$FILLDB --import-icon-map /home/mythtv/master_iconmap.xml --update-icon-map
-
-# lock schema, this makes sure that we don't run this while the DB schema is
-# being upgraded by another mythtv process.
-echo "LOCK TABLE schemalock WRITE; UNLOCK TABLES;" | mysql mythconverg
-# Myth puts the icons in the current user's home directory.  We want /home/mythtv
-echo "UPDATE channel SET icon=REPLACE(icon,'/root/.mythtv','/home/mythtv')" | mysql mythconverg
-# Move the icons..
-mkdir -p /home/mythtv/channels
-if test x`echo/root/.mythtv/channels/*`x != x""x ; then
-	mv -f /root/.mythtv/channels/* /home/mythtv/channels
-	chmod a+r /home/mythtv/channels/*
-fi
-
-# Send a sync command to fix up the directories
-/usr/pluto/bin/MessageSend $DCERouter -targetType template -r 0 36 1 824
-
-R=$(echo "SELECT * FROM videosource LIMIT 1" | mysql mythconverg)
-if [[ -n "$R" ]]; then
-	# Notify all the orbiters that myth is ready to be used
-	/usr/pluto/bin/MessageSend $DCERouter -targetType template -r 0 12 1 406 9 \
-		"MythTV is ready.  However it may take several more minutes before the guide data is fully populated." 102 300
-	/usr/pluto/bin/MessageSend $DCERouter -targetType template -r 0 36 1 910 9 \
-		"Finished retrieving channels"
-fi
-
-/usr/pluto/bin/Restart_Backend_With_SchemaLock.sh
-
-# Now that we have channels and icons, go ahead and fill the database.  If the user interrupts this now it's ok
-# because it will grab partial data and continue the next time
-$FILLDB
-
-# tell the backend to reschedule
-mythbackend --resched > /dev/null &
Index: MythTvDailyFillDB.sh
===================================================================
--- MythTvDailyFillDB.sh	(revision 0)
+++ MythTvDailyFillDB.sh	(revision 0)
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+. /usr/pluto/bin/Config_Ops.sh
+
+FILLDB=/usr/bin/mythfilldatabase
+
+# If the user installed a their own mythfilldatabase, adjust..
+if test -f /usr/local/bin/mythfilldatabase ; then
+	FILLDB=/usr/local/bin/mythfilldatabase
+fi
+
+# Run mythfilldatabase on a single core if possible
+if test x"" != x'which taskset' ; then
+	FILLDB="taskset -c 0 "$FILLDB
+fi
+
+HAS_IGNORE_BACKEND=`$FILLDB --help | grep ignore-backend`
+if test x"" != x"$HAS_IGNORE_BACKEND" ; then
+	FILLDB=$FILLDB" --ignore-backend"
+fi
+
+# Lock the MythFillDatabase lock to another script from running mythfilldatabase
+echo "MythTvDailyFillDB.sh waiting for MythFillDatabase lock"
+WaitLock "MythFillDatabase" "MythTvDailyFillDB.sh" nolog
+echo "MythTvDailyFillDB.sh got MythFillDatabase lock"
+
+# lock schema, this makes sure that we don't run this while the DB schema is
+# being upgraded by another mythtv process.
+echo "LOCK TABLE schemalock WRITE; UNLOCK TABLES;" | mysql mythconverg
+
+# Download today's scheduling data, so that we can tune LiveTV immediately
+$FILLDB
+
+# Tell the user it's now safe to use MythTV
+R=$(echo "SELECT * FROM videosource LIMIT 1" | mysql mythconverg)
+if [[ -n "$R" ]]; then
+	# Notify all the orbiters that myth is ready to be used
+	/usr/pluto/bin/MessageSend $DCERouter -targetType template -r 0 36 1 910 9 \
+		"Finished retrieving scheduling data"
+fi
+
+# Unlock the MythFillDatabase lock
+Unlock "MythFillDatabase" "MythTvDailyFillDB.sh" nolog
+
+# if we ran without a mythbackend connection, tell the backend to reschedule..
+if test x"" != x"$HAS_IGNORE_BACKEND" ; then
+	mythbackend --resched > /dev/null &
+fi

Property changes on: MythTvDailyFillDB.sh
___________________________________________________________________
Name: svn:executable
   + *

Index: MythTvSyncDB.sh
===================================================================
--- MythTvSyncDB.sh	(revision 0)
+++ MythTvSyncDB.sh	(revision 0)
@@ -0,0 +1,147 @@
+#!/bin/sh
+# /usr/pluto/bin/MythTvSyncDB.sh
+# Copyright 2008 Daniel Kristjansson
+# Licensed under the GPL, version 2; or, at your option, a later version.
+
+DBHostName="localhost"
+DBUserName="mythtv"
+DBName="mythconverg"
+DBPassword="mythtv"
+DBPort="3306"
+
+if [ -f /etc/mythtv/mysql.txt ]; then
+	. /etc/mythtv/mysql.txt
+fi
+
+MYSQLPIPE="mysql -h $DBHostName  -P $DBPort -u $DBUserName -p$DBPassword mythconverg --skip-column-names"
+NAMES=$(echo "SELECT hostname FROM settings WHERE hostname IS NOT NULL GROUP BY hostname;" | $MYSQLPIPE)
+
+function UpdateMythSetting {
+	SETTING_VALUE="$1"
+	SETTING_DATA="$2"
+	SETTING_HOST="$3"
+
+	if [ x"$SETTING_HOST" = x"NULL" ] ; then
+		echo "DELETE FROM settings WHERE value = '${SETTING_VALUE}' AND hostname IS NULL;" | $MYSQLPIPE
+		echo "INSERT INTO settings(value,data) VALUES ('$SETTING_VALUE','$SETTING_DATA');" | $MYSQLPIPE
+	else
+		echo "DELETE FROM settings WHERE value = '${SETTING_VALUE}' AND hostname = '${SETTING_HOST}';" | $MYSQLPIPE
+		echo "INSERT INTO settings(value,data,hostname) VALUES ('$SETTING_VALUE', '$SETTING_DATA', '$SETTING_HOST');" | $MYSQLPIPE
+	fi
+}
+
+function InsertMythSetting {
+	SETTING_VALUE="$1"
+	SETTING_DATA="$2"
+	SETTING_HOST="$3"
+
+	if [ x"$SETTING_HOST" = x"NULL" ] ; then
+		COUNT=$(echo "SELECT count(1) FROM settings WHERE value = '${SETTING_VALUE}' AND hostname IS NULL;" | $MYSQLPIPE)
+	else
+		COUNT=$(echo "SELECT count(1) FROM settings WHERE value = '${SETTING_VALUE}' AND hostname = '${SETTING_HOST}';" | $MYSQLPIPE)
+	fi
+
+	if [ x"$COUNT" == x"0" ] ; then
+		UpdateMythSetting "$SETTING_VALUE" "$SETTING_DATA" "$SETTING_HOST"
+	fi
+}
+
+function UpdateMythSettingAllHosts {
+	SETTING_VALUE="$1"
+	SETTING_DATA="$2"
+
+	for NAME in $NAMES ; do
+		UpdateMythSetting "$SETTING_VALUE" "$SETTING_DATA" "$NAME"
+	done
+}
+
+function InsertMythSettingAllHosts {
+	SETTING_VALUE="$1"
+	SETTING_DATA="$2"
+
+	for NAME in $NAMES ; do
+		InsertMythSetting "$SETTING_VALUE" "$SETTING_DATA" "$NAME"
+	done	
+}
+
+if [ x"$1" = x"master" ] ; then
+	IPADDR="$2"
+	if [ x"" = x"$IPADDR" ] ; then
+		echo "Must set IP Address of MythTV Master server."
+		exit 1
+	fi
+
+	# Do NOT remove this user job, it is required for MythTV recordings
+	# to show up in LMCE's recording list with metadata.
+	UpdateMythSettingAllHosts "JobAllowUserJob1" "1"
+	UpdateMythSetting "AutoRunUserJob1"  "1" "NULL"
+	UpdateMythSetting "UserJob1"         "/usr/pluto/bin/SaveMythRecording.sh %CHANID% %STARTTIME% %DIR% %FILE%" "NULL"
+	UpdateMythSetting "UserJobDesc1"     "Save the recorded show into Pluto\'s database" "NULL"
+
+	# This is only to default to English, if you set a different
+	# set of languages within MythTV these will not be inserted.
+	InsertMythSettingAllHosts "Language"                   "EN"
+	InsertMythSettingAllHosts "ISO639Language0"            "eng"
+	InsertMythSettingAllHosts "ISO639Language1"            "eng"
+
+	# Changing any of these are know to cause problems within MythTV
+	# LMCE will still function, but MythTV will not function optimally.
+	UpdateMythSettingAllHosts "PreferredMPEG2Decoder"      "ffmpeg"
+	UpdateMythSettingAllHosts "UseChromaKeyOSD"            "0"
+	UpdateMythSettingAllHosts "UseOpenGLVSync"             "0"
+
+	# This can be safely changed, but beware that Xine can not take
+	# advantage of this flagging and it consumes considerable CPU.
+	UpdateMythSettingAllHosts "AutoCommercialFlag"         "0"
+	UpdateMythSettingAllHosts "AutoCommflagWhileRecording" "0"
+
+	# Do NOT change the network control setup, the MythTV_PlugIn will get confused.
+	UpdateMythSettingAllHosts "NetworkControlEnabled"      "1"
+	UpdateMythSettingAllHosts "NetworkControlPort"         "10001"
+
+	# This channel changing option can be safely changed
+	UpdateMythSettingAllHosts "SelectChangesChannel"       "1"
+
+	# These playback options can be safely changed
+	UpdateMythSettingAllHosts "VertScanPercentage"         "2"
+	UpdateMythSettingAllHosts "HorizScanPercentage"        "1"
+	UpdateMythSettingAllHosts "Deinterlace"                "1"
+	UpdateMythSettingAllHosts "DeinterlaceFilter"          "bobdeint"
+
+	# Changing these will cause problems with fast forward in the Orbiter UI
+	UpdateMythSettingAllHosts "FFRewSpeed0"                "1"
+	UpdateMythSettingAllHosts "FFRewSpeed1"                "2"
+	UpdateMythSettingAllHosts "FFRewSpeed2"                "4"
+	UpdateMythSettingAllHosts "FFRewSpeed3"                "8"
+	UpdateMythSettingAllHosts "FFRewSpeed4"                "16"
+
+        # Don't disable mythfilldatabase even with EIT scheduling data.
+	# mythfilldatabase also performs some housecleaning tasks.
+	UpdateMythSetting "MythFillEnabled"     "1"     "NULL"
+	UpdateMythSetting "MythFillPeriod"      "1"     "NULL"
+	UpdateMythSetting "MythFillMinHour"     "0"     "NULL"
+	UpdateMythSetting "MythFillMaxHour"     "19"    "NULL"
+	UpdateMythSetting "MythFillDatabasePath" "/usr/pluto/bin/MythTvDailyFillDB.sh" "NULL"
+	UpdateMythSetting "MythFillDatabaseLog" "/var/log/mythtv/mythfilldatabase.log"
+
+	# Don't change this unless you KNOW what you are doing
+	UpdateMythSetting "MasterServerIP"      $IPADDR "NULL"
+	UpdateMythSetting "MasterServerPort"    "6543"  "NULL"
+elif [ x"$1" = x"slave" ] ; then
+	IPADDR="$2"
+	NAME="$3"
+	if [ x"" = x"$IPADDR" ] ; then
+		echo "Must set IP Address of MythTV server."
+		exit 1
+	fi
+	if [ x"" = x"$NAME" ] ; then
+		echo "Must set name of MythTV server."
+		exit 2
+	fi
+
+	# Don't change this unless you KNOW what you are doing
+	UpdateMythSetting "BackendServerIP"     $IPADDR $NAME
+	UpdateMythSetting "MasterServerPort"    "6543"  $NAME
+	UpdateMythSetting "BackendServerPort"   "6543"  $NAME
+	UpdateMythSetting "BackendServerStatus" "6544"  $NAME
+fi
\ No newline at end of file

Property changes on: MythTvSyncDB.sh
___________________________________________________________________
Name: svn:executable
   + *