#!/bin/bash ################################################################### #Script to configure your system based off the values in /etc/systemconfig #Any changes made to config files will be removed when systemconfig.sh is run # #JM ################################################################### #set -x . /etc/profile #MVRELEASE=`cat /etc/mythvantage-release |cut -d" " -f -2` MVRELEASE=`cat /etc/LinHES-release ` echo $@ >/tmp/systemconfig.call echo "----------------------start of systemconfig $@ ----------------------" BASE="" #TEMPLATES="/usr/share/templates" . /etc/profile MYTHHOME=$BASE/home/mythtv . $MV_ROOT/bin/networkconfig.sh PACMAN="pacman --noconfirm" postfix=`cat ${BASE}/usr/local/share/mythtv/.releasetype` PKGBLACKLIST=$BASE/etc/blacklist.package if [ x$1 = x"Mysql_only" ] then rm -f /tmp/mysql.txt sed -e "s/^DBHostName=.*$/DBHostName=$2/" $TEMPLATES/mysql.txt > /tmp/mysql.txt exit 0 fi if [ -f /etc/systemconfig ] then . /etc/systemconfig setup_MYTH_vars TEMPNET="Hostip"$default_interface echo $TEMPNET eval MYTHIP=\$${TEMPNET} else echo "could not find /etc/systemconfig" exit 1 fi function cp_and_log () { if [ -e $1 ] then echo "copying $1 to $2" cp -rfp "$1" "$2" else echo "$1 is not present, skipping..." fi } #----------------------------------------------------- function setupmysql { #setup mysql.txt to find the database servers echo "running setup mysql" if [ $SystemType = "Master_backend" ] then if [ $MYTHDHCP = 0 ] then #this grabs eth0, as that is all thats supported. # dbhost=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'|head -n1` dbhost=`ifconfig | grep -C1 $default_interface| grep -v $default_interface | cut -d: -f2 | awk '{ print $1}'` sed -e "s/^dbhost=.*$/dbhost=\"$dbhost\"/" /etc/systemconfig >/tmp/systemconfig.old cp_and_log /tmp/systemconfig.old ${BASE}/etc/systemconfig ##logic to change master_serverip and backend_serverip in db ${BASE}${MV_ROOT}/bin/restore_default_settings.sh -c BECONFIG -s master -a $dbhost else dbhost=$MYTHIP sed -e "s/^dbhost=.*$/dbhost=\"$dbhost\"/" /etc/systemconfig >/tmp/systemconfig.old cp_and_log /tmp/systemconfig.old ${BASE}/etc/systemconfig #logic to change dbhost in db ${BASE}${MV_ROOT}/bin/restore_default_settings.sh -c BECONFIG -s master -a $dbhost fi fi if [ $SystemType = "Slave_backend" ] then if [ $MYTHDHCP = 0 ] then #this grabs eth0, as that is all thats supported. #slavehost=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'|head -n1` slavehost=`ifconfig | grep -C1 $default_interface| grep -v $default_interface | cut -d: -f2 | awk '{ print $1}'` ##logic to change backend_serverip in db ${BASE}${MV_ROOT}/bin/restore_default_settings.sh -c BECONFIG -s slave -a $slavehost else slavehost=$MYTHIP #logic to change backend_serverif in db ${BASE}${MV_ROOT}/bin/restore_default_settings.sh -c BECONFIG -s slave -a $slavehost fi fi MYSQLTXT=${BASE}/usr/share/mythtv/mysql.txt if [ $SystemType = "Standalone" ] then sed -e "s/^DBHostName=.*$/DBHostName="localhost"/" $TEMPLATES/mysql.txt > $MYSQLTXT else sed -e "s/^DBHostName=.*$/DBHostName=$dbhost/" $TEMPLATES/mysql.txt > $MYSQLTXT fi rm ${BASE}/home/mythtv/.mythtv/mysql.txt rm ${BASE}${MV_ROOT}/bin/mythtv/.mythtv/mysql.txt if [ -f ${BASE}/home/mythtv/templates/mysql.txt ] then cp_and_log ${BASE}/home/mythtv/templates/mysql.txt $MYSQLTXT fi chmod 755 $MYSQLTXT chown mythtv $MYSQLTXT } function setupmysqlnetwork(){ MFILE=etc/my.cnf grep "#skip-networking" $BASE/$MFILE status=$? if [ $SystemType = "Standalone" ] then sed -ie "s/^#skip-networking/skip-networking/g" $BASE/$MFILE if [ $status = 0 ] then sudo sv restart mysql echo "restarting mysql with no network" fi fi if [ $SystemType = "Master_backend" ] then sed -ie "s/^skip-networking/#skip-networking/g" $BASE/$MFILE if [ $status = 1 ] then sudo sv restart mysql echo "restarting mysql with network" fi fi } function settimezone { #set the timezone if [ x"$timezone" = x ] then timezone="unknown" fi rm ${BASE}/etc/localtime echo $timezone ln -s "/usr/share/zoneinfo/$timezone" ${BASE}/etc/localtime sed -e "s~^TIMEZONE=.*$~TIMEZONE=\"${timezone}\"~" ${BASE}/etc/rc.conf > $TEMPLATES/rc.conf if [ -f ${BASE}/etc/php/php.ini ] then echo "changing timezone in php.ini" sed -i "s/^.*date.timezone.*$/date.timezone=${timezone}/" ${BASE}/etc/php/php.ini fi cp_and_log $TEMPLATES/rc.conf ${BASE}/etc/rc.conf #Check for Atomic Ant if grep disablemodules=agpart,intel_agp /proc/cmdline >/dev/null then cat /etc/rc.conf | sed -e '/MOD_BLACKLIST/ c\MOD_BLACKLIST=($ALSABLACKLIST agpart intel_agp)' > /etc/rc.conf.aa mv /etc/rc.conf /etc/rc.conf.preaa mv /etc/rc.conf.aa /etc/rc.conf # else # exit 1 fi } # function setupreceiver { # case $ReceiverType in # tinker) echo "do nothing" # ;; # Serial) echo "setup serial lirc" # sed -i -e '/.*#lirc/d' ${BASE}/etc/modules.mythvantage # echo "lirc_serial #lirc" >> ${BASE}/etc/modules.mythvantage # load-modules-mythvantage.sh # ;; # Usb-imon) echo "setup receiver-usb-imon" # sed -i -e '/.*#lirc/d' ${BASE}/etc/modules.mythvantage # echo "lirc_imon #lirc" >> ${BASE}/etc/modules.mythvantage # load-modules-mythvantage.sh # ;; # Hauppauge) echo "setup hauppauge reciever (lirc_i2c)" # sed -i -e '/.*#lirc/d' ${BASE}/etc/modules.mythvantage # echo "lirc_i2c #lirc" >> ${BASE}/etc/modules.mythvantage # cp_and_log $TEMPLATES/modules/lirc_i2c.conf ${BASE}/etc/modprobe.d/lirc_i2c.conf # rmmod lirc_i2c 2>/dev/null # load-modules-mythvantage.sh # ;; # *) sed -i -e '/.*#lirc/d' ${BASE}/etc/modules.mythvantage # ;; # esac # # # } function setupevrouter { if [ x$UseEvrouter = x1 ] then case x$EvrouterConfig in xtinker ) echo "do nothing for evrouter" ;; x ) echo "empty evrouter" ;; * ) echo "setup evrouter for $EvrouterConfig " cp_and_log $TEMPLATES/evrouter/$EvrouterConfig /etc/evrouter.cfg daemon_add="evrouter Xvfb $daemon_remove" ;; esac else # disable evrouter daemon_remove="evrouter Xvfb $daemon_remove" fi } function scrubnfs { cp_and_log /etc/fstab $TEMPLATES/fstab.conf.template grep -v nfs $TEMPLATES/fstab.conf.template > ${BASE}/etc/fstab } function setupfstab () { # setupfstab $NFSserver $NFSshare $NFSmount echo "$1 $2 nfs" >> ${BASE}/etc/fstab if [ ! -e "$2" ] then mkdir -p "$2" chown mythtv:mythtv "$2" fi if [ x$DCONFIG = x ] then mount $2 & fi } function setupncidclient { sed -e "s/^set Host.*$/set Host $dbhost /" $TEMPLATES/ncid.conf.template >${BASE}/etc/ncid/ncid.conf } function setupnciddaemon { if [ x$Runncidd = x1 ] then cp_and_log /etc/ncid/ncidd.conf $TEMPLATES/ncidd.conf.template sed -e "s/.*set ttyport.*$/set ttyport = \/dev\/$nciddSerialPort /" $TEMPLATES/ncidd.conf.template >${BASE}/etc/ncid/ncidd.conf fi } function setupntp () { #this is used for backend or standlone types if [ $1 = "1" ] then #MBE/STD use deafult echo "Not changing ntp config" else #echo "server $dbhost" >> ${BASE}/etc/ntp.conf echo "setting ntp to $dbhost" sed -i "s/pool.ntp.org/$dbhost/g" ${BASE}/etc/ntp.conf fi } function setupplugins (){ pkglistinstall="" pkglistremove="" #default enabled for i in mythcontrols mythgallery mythmovietime mythmusic mythsmolt mythvideo do eval pkgvalue=\$${i} if [ x$pkgvalue = x ] then pkglistinstall="$pkglistinstall $i$postfix" else if [ x$pkgvalue = x1 ] then pkglistinstall="$pkglistinstall $i$postfix" else pkglistremove="$pkglistremove $i$postfix" fi fi done #default disabled for i in mythphone mytharchive mythbrowser mythnews mythgame mythflix mythweather mythappletrailers mythstream mythvodka do eval pkgvalue=\$${i} if [ x$pkgvalue = x ] then pkglistremove="$pkglistremove $i$postfix" else if [ x$pkgvalue = x1 ] then pkglistinstall="$pkglistinstall $i$postfix" else pkglistremove="$pkglistremove $i$postfix" fi fi done #everything else for i in miro xe romdb xine dvdcss webmin do eval pkgvalue=\$${i} case $i in xine) if [ x$pkgvalue = x1 ] then pkglistinstall="$pkglistinstall xine-ui" else pkglistremove="$pkglistremove xine-ui" fi ;; dvdcss) if [ x$pkgvalue = x1 ] then pkglistinstall="$pkglistinstall libdvdcss" else pkglistremove="$pkglistremove libdvdcss" fi ;; webmin) ##Daemon_add is here because webmin is on the software page instead of the advanced screen if [ x$pkgvalue = x1 ] then pkglistinstall="$pkglistinstall webmin" daemon_add="webmin $daemon_add" else pkglistremove="$pkglistremove webmin" daemon_remove="webmin $daemon_remove" fi ;; *) if [ x$pkgvalue = x1 ] then pkglistinstall="$pkglistinstall $i" else pkglistremove="$pkglistremove $i" fi ;; esac done install="$pkglistinstall $install" remove="$pkglistremove $remove" } function LCDcheck () { case x$LCDtype in xtinker) echo "do nothing lcd " ;; xno_lcd) echo "no lcd " ;; xxosd) install="xosd lcdproc $install" ;; x) echo "lcd empty " ;; *) install="lcdproc $install" ;; esac } function packages () { #see which plugins need to be installed echo " Starting to install Packages" setupplugins LCDcheck if [ ! -f $PKGBLACKLIST ] then touch $PKGBLACKLIST fi for i in $remove do if [ ! x$i = xnone ] then echo "-----------$i --------------" grep -q $i $PKGBLACKLIST if [ $? = 1 ] then pacman -Q $i 2>/dev/null #VAR=`pacman -Q $i 2>&1 ` if [ $? = 0 ] then if [ $i = "mythweb$postfix" ] then pacman --noconfirm -R mythweb$postfix echo removed $i else pacman --noconfirm -Rs $i echo removed $i fi fi else echo "$i is black listed" fi fi done for i in $install do if [ ! x$i = xnone ] then echo "-----------$i --------------" grep -q $i $PKGBLACKLIST if [ $? = 1 ] then pacman -Q $i 2>/dev/null #VAR=`pacman -Q $i 2>&1 ` # echo $VAR |grep -vq error: if [ ! $? = 0 ] then pacman --noconfirm -Sf $i echo installed $i else echo "$i already installed" fi else echo "$i is black listed" fi fi done } function daemons { echo "Daemons on boot" for i in $daemon_remove do sv check $i 1>/dev/null status=$? if [ $status -eq 0 ] then sv down $i fi remove_service.sh $i done for i in $daemon_add do sv check $i 1>/dev/null status=$? add_service.sh $i if [ $status -eq 0 ] then case $i in mysql*) sv hup $i ;; mythback*) sv hup $i ;; lirc* ) sv hup $i ;; frontend) sv check frontend 1>/dev/null ;; smbd ) sv hup $i ;; nmbd ) sv hup $i ;; evrouter) sv restart $i ;; *) sv down $i sleep 1 sv up $i ;; esac fi done } function services { ser_install="" ser_daemon_add="" ser_remove="" ser_daemon_remove="" if [ x$UseEvrouter = x1 ] then ser_daemon_add="evrouter Xvfb $ser_daemon_add" else ser_daemon_remove="evrouter Xvfb $ser_remove" fi if [ x$RunDHCP = x1 ] then ser_daemon_add="dnsmasq $ser_daemon_add" ser_install="dnsmasq mvpmc $ser_install" else ser_daemon_remove="dnsmasq $ser_daemon_remove" ser_remove="dnsmasq mvpmc $ser_remove" fi if [ x$RunFrontend = x1 ] then ser_daemon_add="frontend hal $ser_daemon_add" ser_install=" $ser_install" showX=true else ser_daemon_remove="frontend hal $ser_daemon_remove" ser_remove="$ser_remove" fi if [ x$UseMythWEB = x1 ] then ser_install="lighttpd mythweb$postfix $ser_install" ser_daemon_add="lighttpd $ser_daemon_add" else ser_remove="mythweb$postfix $ser_remove" ser_daemon_remove="$ser_daemon_remove" fi #samba if [ x$UseSamba = x1 ] then ser_install="samba $ser_install" ser_daemon_add="nmbd smbd $ser_daemon_add " if [ x$Samba_mediareadonly = x1 ] then smreadonly="no" else smreadonly="yes" fi if [ x$Samba_homereadonly = x1 ] then shreadonly="no" else shreadonly="yes" fi if [ ! -d ${BASE}/etc/samba ] then mkdir ${BASE}/etc/samba fi if [ -f ${MYTHHOME}/templates/smb.conf ] then install -D -m755 ${MYTHHOME}/templates/smb.conf ${BASE}/etc/samba/smb.conf else sed -e "s/^.*workgroup =.*$/ workgroup = $Samba_domain/g " \ -e "s/^.*server string = .*$/ server string = $hostname/g" $TEMPLATES/samba/smb.conf.template > ${BASE}/etc/samba/smb.conf if [ x$Samba_media = "x1" ] then echo "include = /etc/samba/smb.conf.media" >> ${BASE}/etc/samba/smb.conf sed -e "s/^.*writeable.*$/writeable = $smreadonly/g" $TEMPLATES/samba/smb.conf.media > ${BASE}/etc/samba/smb.conf.media fi if [ x$Samba_home = "x1" ] then echo "include = /etc/samba/smb.conf.home" >> ${BASE}/etc/samba/smb.conf sed -e "s/^.*writeable.*$/writeable = $shreadonly/g" $TEMPLATES/samba/smb.conf.home > ${BASE}/etc/samba/smb.conf.home fi fi else ser_remove="samba $ser_remove" ser_install="smbclient $ser_install" ser_daemon_remove="smbd nmbd $ser_daemon_remove" fi if [ x$UseNFS = x1 ] then ser_install="nfs-utils portmap $ser_install" ser_daemon_add="nfsd nfslock portmap $ser_daemon_add" sed -e "s/REPLACEME/*/g" $TEMPLATES/exports.template > ${BASE}/etc/exports else ser_remove="$ser_remove" ser_daemon_remove="nfsd $ser_daemon_remove" fi if [ x$Runncidd = x1 ] then ser_daemon_add="ncidd ncid $ser_daemon_add" ser_install="ncid $ser_install" else ser_daemon_remove="ncidd ncid $ser_daemon_remove" ser_remove="ncid $ser_remove" fi if [ x$UseEvrouter = x1 ] then ser_install="evrouter Xvfb $ser_install" else ser_remove="evrouter $ser_remove" fi if [ x$DDnsEnable = x1 ] then ser_daemon_add="inadyn $ser_daemon_add" ser_install="inadyn $ser_install" else ser_daemon_remove="inadyn $ser_daemon_remove" ser_remove="inadyn $ser_remove" fi case x$Screensavertype in xxscreensaver) ser_install="xscreensaver $ser_install" ser_remove="gnome-screensaver $ser_remove" ;; xgscreensaver) ser_install="xscreensaver gnome-screensaver $ser_install" ;; xnone) ser_remove="gnome-screensaver xscreensaver $ser_remove" ;; xtinker) echo "tinker mode for screensaver" ;; esac #Setting the default, just to avoid the or statement.. #if [ x$UseHobbit = x ] #then # UseHobbit=0 #fi #if [ x$UseHobbit = x1 ] #then # case $SystemType in # Standalone|Master_backend ) # ser_daemon_add="hobbit $ser_daemon_add" # ser_install="hobbitserver $ser_install" # ;; # # *) ser_daemon_add="hobbit-client $ser_daemon_add" # ser_install="hobbit-client $ser_install" # ;; # esac #else # ser_daemon_remove="hobbit hobbit-client $ser_daemon_remove" # ser_remove="hobbit-client hobbitserver $ser_remove" # rm -f /data/srv/httpd/htdocs/hobbit/index.html # # fi } function setupsleep { if [ x$AutoShutdown = x1 ] then cronshutdowntime="" if [ x$Shutdowntime != x-1 ] then cronshutdowntime=$Shutdowntime fi if [ x$Shutdowntime2 != x-1 ] then if [ x$cronshutdowntime = x ] then cronshutdowntime=$Shutdowntime2 else cronshutdowntime="${cronshutdowntime},${Shutdowntime2}" fi fi sed -e "s/HOUR/$cronshutdowntime/g" $TEMPLATES/cron.template | crontab - -u mythtv else sed -e "/00 HOUR.*/d" $TEMPLATES/cron.template | crontab - -u mythtv fi } function setuppacman () { #setup link to httpd dir echo "Configuring pacman" if [ ! x$1 = x ] then ln -s ${BASE}/data/var ${BASE}/data/srv/httpd/htdocs/repo echo "creating the link for the pacman repo mirror" fi for i in mv-core mv-core-testing mv-extra mv-extra-testing do echo "[$i]" > ${BASE}/etc/pacman.d/$i #add mirror if needed if [ x$PKG_MIRROR = x1 ] then echo " Server = http://$dbhost/repo/$i " >> ${BASE}/etc/pacman.d/$i fi #add user templates USERTEMPLATES="/data/home/mythtv/templates" if [ -f $USERTEMPLATES/sources/$i ] then echo "Adding user $i" cat $USERTEMPLATES/sources/$i >> ${BASE}/etc/pacman.d/$i fi cat $TEMPLATES/sources/$i >> ${BASE}/etc/pacman.d/$i echo "setting local mirror to $dbhost for $i " done #sed -e "s/REPLACEME/$dbhost/g" $TEMPLATES/sources/svc_pkg > /etc/pacman.d/svc_pkg } function setupzipcode () { if [ ! x$zipcode = x ] then ${MV_ROOT}/bin/restore_default_settings.sh -c ZIP -z $zipcode #Let's also speed things up for those in North America mkdir /usr/bin/perlbin/vendor/tv_grabbers_non_na mv /usr/bin/perlbin/vendor/tv_grab_* /usr/bin/perlbin/vendor/tv_grabbers_non_na mv /usr/bin/perlbin/vendor/tv_grabbers_non_na/tv_grab_na* /usr/bin/perlbin/vendor/ fi } function process_nfsmap () { #first look for a local copy of nfsmap if [ $1 = noip ] then if [ -f /data/home/mythtv/templates/nfsmap ] then NFSMAP="/data/home/mythtv/templates/nfsmap" else mv -f /tmp/nfsmap /tmp/nfsmap.old wget -O /tmp/nfsmap http://$dbhost:1337/templates/nfsmap if [ $? = 0 ] then NFSMAP="/tmp/nfsmap" fi fi else mv -f /tmp/nfsmap /tmp/nfsmap.old wget -O /tmp/nfsmap http://$1:1337/templates/nfsmap if [ $? = 0 ] then NFSMAP="/tmp/nfsmap" fi fi if [ -f $NFSMAP ] then #read in file while read line do NFSserver=`echo "$line"|cut -d" " -f1` NFSmount=`echo "$line"|cut -d" " -f2` setupfstab $NFSserver $NFSmount done <$NFSMAP else echo "couldn't find nfsmap" fi } function setupcnfs () { scrubnfs if [ $HaveCentralNFS = "yes" ] then case x$NFSserver in xfile:nfsmap ) process_nfsmap noip ;; *:nfsmap ) nfsmapip=`echo "$NFSserver" | cut -d: -f1 ` process_nfsmap $nfsmapip ;; *) setupfstab $NFSserver $NFSmount esac #if [ ! x"$NFSserver" = "xfile:nfsmap" ] #then # setupfstab $NFSserver $NFSmount #else # process_nfsmap #fi else echo "fe_nfs" #if no central nfs found, then use the mbe. if [ $SystemType = "Frontend_only" ] then setupfstab ${dbhost}:/myth /myth fi fi } function setupbootsplash () { if [ x$Usebootsplash = x1 ] then COMMAND="%s/^default.*0/default 1/g" else COMMAND="%s/^default.*1/default 0/g" fi ex ${BASE}/boot/grub/menu.lst < ${BASE}/etc/resolv.conf echo "nameserver 127.0.0.1" >> ${BASE}/etc/resolv.conf echo "nameserver $nameserver" >> ${BASE}/etc/resolv.conf fi #setup dongle.config COMMAND="%s/mvpmc -f .*/mvpmc -f \/etc\/helvR10.fon -s ${ip} \& /" ex ${BASE}/data/srv/tftp/dongle.bin.config <> $BASE/etc/mplayer/mplayer.conf fi grep -q heartbeat-cmd $BASE/etc/mplayer/mplayer.conf if [ $? = 0 ] then sed -i '/^.*heartbeat-cmd.*$/d' $BASE/etc/mplayer/mplayer.conf #sed -i "s/^.*heartbeat-cmd.*$/heartbeat-cmd=\"$1\"/ g" $BASE/etc/mplayer/mplayer.conf fi echo "heartbeat-cmd = \"$1\"" >> $BASE/etc/mplayer/mplayer.conf } function killxscreensaver { xscreensaver-command --exit & killall xscreensaver & } function killgscreensaver(){ gnome-screensaver-command --exit & killall gnome-screensaver & } function setupscreensaver { #copy in template case x$Screensavertype in xxscreensaver) killgscreensaver #why can't it have a nice conf tool like gconf if [ ! -f $MYTHHOME/.xscreensaver ] then #copy in template cp -f $TEMPLATES/xscreensaver.template $MYTHHOME/.xscreensaver fi #change the idle sed -i "s/^timeout.*$/timeout: 0:$Screensaveridle:00/g" $MYTHHOME/.xscreensaver #set the mode case x$Screensavertheme in xRandom) sed -i "s/^mode.*$/mode: random/g" $MYTHHOME/.xscreensaver ;; xBlank) sed -i "s/^mode.*$/mode: blank/g" $MYTHHOME/.xscreensaver ;; *) sed -i "s/^mode.*$/mode: one/g" $MYTHHOME/.xscreensaver #set the theme start=`awk '/programs/{print NR" "}' $MYTHHOME/.xscreensaver` ss=`awk '/'$Screensavertheme'/{print NR" "}' $MYTHHOME/.xscreensaver` sspos=$((ss-start-1)) sed -i "s/^selected.*$/selected: $sspos/g" $MYTHHOME/.xscreensaver ;; esac mplayer_saver_check "/usr/bin/xscreensaver-command -deactivate &" ;; xgscreensaver) gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type bool --set /apps/gnome-screensaver/lock_enabled false gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type int -s "/apps/gnome-screensaver/idle_delay" $Screensaveridle gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string -s "/apps/gnome-screensaver/mode" single case x$Screensavertheme in xRandom) gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string -s "/apps/gnome-screensaver/mode" random ;; xBlank) gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string -s "/apps/gnome-screensaver/themes" blank ;; *) gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --set --type list --list-type=string /apps/gnome-screensaver/themes [screensavers-$Screensavertheme] ;; esac mplayer_saver_check "/usr/bin/gnome-screensaver-command -p &" killxscreensaver ;; xnone) killgscreensaver killxscreensaver ;; xtinker) echo "tinker mode for setupscreensaver" ;; esac # # #start it if not already running. # if [ x$XScreensaver = x1 ] # then # #check if it's running, it not start it. # if [ ! x$MV_NEW_INSTALL = "xtrue" ] # then # su - mythtv -c "/usr/bin/gnome-screensaver " # fi # else # #kill it # gnome-screensaver-command --exit & # killall gnome-screensaver & # fi } #----------------------------------------------------MAIN PROGRAM------------------------------------------- #misc,sleep,hostype,advanced,audio eval LAST=\$$# LIST=`echo $LAST | tr , " " ` hosttypechange="false" for i in $LIST do echo $i case $i in misc) showmisc="true" ;; sleep) showsleep="true" ;; hostype) showhost="true" showX="true" ;; hostypec) hosttypechange="true" ;; advanced) showadvanced="true" ;; audio) showaudio="true" ;; network) shownetwork="true" ;; advancedX) showX="true" ;; webuser) setup_web_auth ;; restartfe) killall -9 mythfrontend killall -9 mythwelcome exit 0 ;; reloadfe) reloadfe ;; ddns) services install=$ser_install remove=$ser_remove daemon_add=$ser_daemon_add daemon_remove=$ser_daemon_remove ;; screensaver) services install=$ser_install remove=$ser_remove daemon_add=$ser_daemon_add daemon_remove=$ser_daemon_remove showscreensaver="true" ;; ir) showir="true" ;; this_is_install) MV_NEW_INSTALL="true" ;; esac done if [ x$MV_NEW_INSTALL = xtrue ] then hosttypechange="false" fi # exit 1 #network if [ x"$shownetwork" = xtrue ] then OLDHOSTNAME=`hostname` NEWHOSTNAME=$hostname if [ ! $OLDHOSTNAME = $NEWHOSTNAME ] then ${MV_ROOT}/bin/restore_default_settings.sh -cuhostname -o -h$OLDHOSTNAME RESTART_FE="true" hostname $NEWHOSTNAME if [ $SystemType != "Frontend_only" ] then sv restart mythbackend fi fi setup_network CMDLINE=$(cat /proc/cmdline) echo $CMDLINE |grep -q netboot NETBOOT=$? if [ x$NETBOOT = x1 ] then echo "loading network" ${BASE}/etc/net/scripts/network.init reload ${BASE}/etc/net/scripts/network.init restart else echo "netboot, will not start network" fi fi if [ x$showhost = "xtrue" ] then . $MV_ROOT/bin/ir_config.sh setupir case $SystemType in Standalone) setupntp 1 services if [ x$hosttypechange = "xtrue" ] then setup_db fi if [ -f ${BASE}/etc/avahi/services/mysql.service ] then rm -f ${BASE}/etc/avahi/services/mysql.service sudo sv restart avahi fi install="mysql mythdb-initial avahli portmap nfslock local-website $ser_install" remove="none $ser_remove" daemon_add="mysql mythbackend avahi portmap nfslock netfs lighttpd $ser_daemon_add" daemon_remove="none $ser_daemon_remove" ;; Master_backend) setupntp 1 services if [ ! -f ${BASE}/etc/avahi/services/mysql.service ] then mkdir ${BASE}/etc/avahi/services cp $TEMPLATES/mysql.service ${BASE}/etc/avahi/services/mysql.service sudo sv restart avahi fi install="mysql mythdb-initial avahi portmap nfslock local-website myth2ipod mythtv-status $ser_install " remove="$ser_remove" daemon_add="mysql mythbackend avahi portmap nfslock netfs lighttpd $ser_daemon_add" daemon_remove="$ser_daemon_remove" ;; Slave_backend) setupntp 0 services if [ x$hosttypechange = "xtrue" ] then setup_db fi if [ -f ${BASE}/etc/avahi/services/mysql.service ] then rm -f ${BASE}/etc/avahi/services/mysql.service sudo sv restart avahi fi #cp $TEMPLATES/mysql.service ${BASE}/etc/avahi/services/mysql.service install="mysql avahi local-website portmap nfslock $ser_install " remove=" $ser_remove" daemon_add="mythbackend avahi portmap nfslock netfs lighttpd $ser_daemon_add" daemon_remove="$ser_daemon_remove" ;; Frontend_only) #Add values for services setupntp 0 services if [ -f ${BASE}/etc/avahi/services/mysql.service ] then rm -f ${BASE}/etc/avahi/services/mysql.service sudo sv restart avahi fi install="libmysqlclient mysql-clients portmap nfslock avahi local-website $ser_install" remove="mysql mythweb$postfix $ser_remove" daemon_add="avahi portmap nfslock netfs lighttpd $ser_daemon_add " daemon_remove="mysql mythbackend $ser_daemon_remove" ;; esac #setupSyslog fi #apply these to ALL types #systemtype if [ x$showhost = "xtrue" ] then setupmysqlnetwork setupmysql #setupremote #REMOTE FIND ME JM #grab the new dbhost key #/usr/bin/grabkey.py fi #audio if [ x$showaudio = "xtrue" ] then #setupsoundtype if [ ! x$Audiotype = xtinker ] then ${MV_ROOT}/bin/soundconfig.sh -t real -i $Audiotype -d $SoundDevice fi fi #should always run packages #misc if [ x$showmisc = "xtrue" ] then setupzipcode settimezone setupcnfs fi #sleep if [ x$showsleep = "xtrue" ] then setupsleep fi if [ x$showX = "xtrue" ] then ${MV_ROOT}/bin/xconfig.sh fi #advanced if [ x$showadvanced = "xtrue" ] then if [ ! x$showhost = "xtrue" ] then services install="none $ser_install" remove="none $ser_remove" daemon_add=" none $ser_daemon_add" daemon_remove="none $ser_daemon_remove" packages if [ x$SystemType = xMaster_backend ] then setuppacman link else setuppacman fi fi setupncidclient setupnciddaemon setupbootsplash setuphobbitclient setupreceiver setupevrouter #setupblaster #setupLCD setupDNSMASQ fi if [ x$showscreensaver = xtrue ] then setupscreensaver fi if [ x$showir = xtrue ] then . $MV_ROOT/bin/ir_config.sh setupir fi daemons #add check for lcd, and restart if needed. if [ x$RESTART_FE = xtrue ] then reloadfe fi case $SystemType in Standalone) smoltsystem=6 MVRELEASE="$MVRELEASE (Standalone)" ;; Master_backend) if [ x$RunFrontend = x1 ] then smoltsystem=2 MVRELEASE="$MVRELEASE (MBE with Frontend)" else smoltsystem=1 MVRELEASE="$MVRELEASE (MBE)" fi ;; Slave_backend) if [ x$RunFrontend = x1 ] then smoltsystem=5 MVRELEASE="$MVRELEASE (SLAVE with Frontend)" else smoltsystem=5 MVRELEASE="$MVRELEASE (SLAVE)" fi ;; Frontend_only) smoltsystem=3 MVRELEASE="$MVRELEASE ( Frontend only)" ;; esac echo $MVRELEASE > /etc/os_myth_release echo "systemtype=$smoltsystem" > /home/mythtv/.mythtv/smolt.info 2>/dev/null echo "remote=$Remotetype" >> /home/mythtv/.mythtv/smolt.info 2>/dev/null