diff options
Diffstat (limited to 'abs/core/live-installer/systemconfig.sh')
-rwxr-xr-x | abs/core/live-installer/systemconfig.sh | 1255 |
1 files changed, 0 insertions, 1255 deletions
diff --git a/abs/core/live-installer/systemconfig.sh b/abs/core/live-installer/systemconfig.sh deleted file mode 100755 index 909119e..0000000 --- a/abs/core/live-installer/systemconfig.sh +++ /dev/null @@ -1,1255 +0,0 @@ -#!/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` - -echo $@ >/tmp/systemconfig.call -echo "----------------------start of systemconfig $@ ----------------------" -BASE="" - -#TEMPLATES="/usr/share/templates" -. /etc/profile -. $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 -TEMPNET="Hostip"$default_interface -echo $TEMPNET -eval MYTHIP=\$${TEMPNET} -else - echo "could not find /etc/systemconfig" - exit 1 -fi - - - -#----------------------------------------------------- - - -function setupmysql { -#setup mysql.txt to find the database servers - 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 /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 /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/local/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}/data/home/mythtv/.mythtv/mysql.txt - rm ${BASE}${MV_ROOT}/bin/mythtv/.mythtv/mysql.txt - if [ -f ${BASE}/data/home/mythtv/templates/mysql.txt ] - then - cp ${BASE}/data/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 - - # echo CLOCK="UTC" > ${BASE}/etc/conf.dclock - # echo CLOCK_SYSTOCH="yes" >> ${BASE}/etc/conf.d/clock - # echo TIMEZONE="$timezone" >> ${BASE}/etc/conf.d/clock -cp $TEMPLATES/rc.conf /etc/rc.conf - -} - - -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 - /usr/bin/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 - /usr/bin/load-modules-mythvantage.sh - ;; - *) sed -i -e '/.*#lirc/d' ${BASE}/etc/modules.mythvantage - ;; - esac - - -} - -function setupremote { - case $Remotetype in - no_remote) echo "No remote selected" - daemon_remove="lircd $daemon_remove" - ;; - tinker) echo "Remote in tinker mode" - ;; - *) echo "Setup remote" - mv ${BASE}/etc/lircd.conf ${BASE}/etc/lircd.conf.`date +%Y-%m-%d-%H-%M` - cd $TEMPLATES/remotes/$Remotetype - for i in lircd* - do - cat $i >> ${BASE}/etc/lircd.conf - done - cp lircrc ${BASE}/etc/lircrc - if [ -f $TEMPLATES/LCD/$LCDtype/lircrc ] - then - cat $TEMPLATES/LCD/$LCDtype/lircrc >> /etc/lircrc - cat $TEMPLATES/LCD/$LCDtype/lircd.conf >> /etc/lircd.conf - fi - if [ -f $TEMPLATES/transmit/$Blastertype/lircd.conf ] - then - cat $TEMPLATES/transmit/$Blastertype/lircd.conf >> ${BASE}/etc/lircd.conf - fi - chmod 755 /etc/lircrc - daemon_add="lircd $daemon_add" - sv hup lircd - ;; -esac - -} - -function setupblaster { - #cd $TEMPLATES/transmit/$Blastertype - #for i in lircd* - #do - # cat lircd.conf >> ${BASE}/etc/lircd.conf - #done - # REMOTE_NAME${BASE}/usr/bin/change_chan.sh=`grep name lircd.conf* |awk -F" " ' { print $2 } '` - sed -e "s/^REMOTE_NAME=.*$/REMOTE_NAME=${Blastertype} /" $TEMPLATES/change_chan.sh > ${BASE}/usr/bin/change_chan.sh - chmod 755 ${BASE}/usr/bin/change_chan.sh - #channel change script change - setupremote - -} - -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 $TEMPLATES/evrouter/$EvrouterConfig /etc/evrouter.cfg - daemon_add="evrouter Xvfb $daemon_remove" - - ;; - esac - else - # disable evrouter - daemon_remove="evrouter Xvfb $daemon_remove" - fi - - - - -} - -function setupLCD { - case x$LCDtype in - xtinker) echo "do nothing" - ;; - xno_lcd) echo "disabling lcd" - sv down lcdd - /usr/bin/load-modules-mythvantage.sh UNLOAD LCD - sed -i -e '/.*#LCD/d' ${BASE}/etc/modules.mythvantage - daemon_remove="lcdd $daemon_remove" - ;; - x) echo "empty lcd" ;; - - *) echo "setup lcd" - if [ -f $TEMPLATES/LCD/$LCDtype/modules ] - then - sed -i -e '/.*#LCD/d' ${BASE}/etc/modules.mythvantage - cat $TEMPLATES/LCD/$LCDtype/modules >> ${BASE}/etc/modules.mythvantage - #should also modprobe - fi - - - if [ -f $TEMPLATES/LCD/$LCDtype/LCDd.conf ] - then - cp -f $TEMPLATES/LCD/$LCDtype/LCDd.conf /etc - # install="lcdproc $install" - daemon_add="lcdd $daemon_add" - /usr/bin/load-modules-mythvantage.sh - RESTART_FE="true" - RESTART_LCD="true" - fi - #check if lirc capable,if so then call setupremote - if [ -f $TEMPLATES/LCD/$LCDtype/lircrc ] - then - setupremote - fi - ;; - esac - -} - - - -function scrubnfs { - cp /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 { - cp -f /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 - -} - -function setupntp () { -cat > ${BASE}/etc/ntp.conf << EOF -# default restrictions -restrict default noquery notrust nomodify -# NTP drift file - used to keep track of your system clocks -# time deviation -driftfile /etc/ntp.drift - -# NTP log file -logfile /var/log/ntp.log -# override the default restrictions here, servers that can query -restrict 192.168.0.0 mask 255.255.0.0 nomodify -restrict 10.0.0.0 mask 255.0.00 nomodify - -#servers to sync with -EOF - #this is used for backend or standlone types - if [ $1 = "1" ] - then - echo "server ntp1.cs.wisc.edu" >> ${BASE}/etc/ntp.conf - echo "server ntp3.sf-bay.org" >> ${BASE}/etc/ntp.conf - echo "restrict ntp1.cs.wisc.edu noquery nomodify" >> ${BASE}/etc/ntp.conf - echo "restrict ntp3.sf-bay.org noquery nomodify" >> ${BASE}/etc/ntp.conf - - else - echo "server $dbhost" >> ${BASE}/etc/ntp.conf - echo "restrict $dbhost noquery nomodify" >> ${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 - 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 -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 - 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 - done - # fi - - for i in $install - do - 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 - 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 ${BASE}/data/home/mythtv/templates/smb.conf ] - then - install -D -m755 ${BASE}/data/home/mythtv/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 nfslock $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 - -#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 - 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}:/data/media /data/media - 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 <<EOF -:$COMMAND -:wq -EOF - -} - -function setuphobbitclient () { -COMMAND="%s/^BBDISP=.*$/BBDISP=$dbhost/g" - - -ex ${BASE}/data/srv/hobbit/client/etc/hobbitclient.cfg <<EOF -:$COMMAND -:wq -EOF - -} - -function setupSyslog () { -COMMAND="%s/^destination d_remote.*$/destination d_remote \{tcp\(\"${dbhost}\" port\(514\)\) \;\} \;/" -ex ${BASE}/etc/syslog-ng.conf <<EOF -:$COMMAND -:wq -EOF - - - - -} - -function setupfuncminion () { -COMMAND="%s/^certmaster.*$/certmaster = ${dbhost}/" -ex ${BASE}/etc/func/minion.conf <<EOF -:$COMMAND -:wq -EOF -} - -function setupDNSMASQ(){ -if [ x$RunDHCP = x1 ] -then - echo "DNSMASQ setup" - -#set default route to my GW -COMMAND="%s/^dhcp-option=3.*$/dhcp-option=3,${route}/" -ex ${BASE}/etc/dnsmasq.conf <<EOF -:$COMMAND -:wq -EOF - -#setup dns to my ip -COMMAND="%s/^dhcp-option=6.*$/dhcp-option=6,${ip}/" -ex ${BASE}/etc/dnsmasq.conf <<EOF -:$COMMAND -:wq -EOF - - -#change nfsroot to my ip -COMMAND="%s/nfsroot=.*:/nfsroot=${ip}:/" -ex ${BASE}/data/srv/tftp/pxelinux.cfg/default <<EOF -:$COMMAND -:wq -EOF - -#add 127.0.0.1 to /etc/resolv.conf - echo "search lan" > ${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 <<EOF -:$COMMAND -:wq -EOF - - - -#setup dongle.config - -} - -function reloadfe(){ - PID=`ps -ef |grep mythfrontend|grep -v grep |awk '{print $2 }'` - /usr/bin/backend_control.sh clearcache behost $dbhost - if [ x$RESTART_LCD = xtrue ] - then - killall -9 mythlcdserver - fi - kill -s USR1 $PID - -} - - -function setup_db (){ - - install="mysql avahli" - daemon_add="mysql" - packages - daemons -status=1 -mysqlstatus=1 -while [ ! $status = 0 ] -do - sv stop mysql - sleep 1 - sv start mysql - mysqlstatus=$? - if [ $mysqlstatus = 0 ] - then - mysql -e "show databases;" - showstatus=$? - if [ $showstatus = 0 ] - then - pacman --noconfirm -R mythdb-initial - pacman --noconfirm -S mythdb-initial - $MV_ROOT/bin/restore_default_settings.sh -c load - if [ $SystemType = "Master_backend" ] - then - $MV_ROOT/bin/restore_default_settings.sh -c BECONFIG -s master -a $dbhost - fi - #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 - if [ -d /data/srv/mysql/mythconverg ] - then - pacman --noconfirm -R webcalendar - pacman --noconfirm --nodeps -S webcalendar - status=0 - fi - fi - fi -done -} - - -#----------------------------------------------------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" - #showhost="true" - ;; - audio) showaudio="true" - ;; - network) shownetwork="true" - ;; - advancedX) showX="true" - ;; - restartfe) killall -9 mythfrontend - killall -9 mythwelcome - exit 0 - ;; - reloadfe) reloadfe - ;; - - 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 - else - echo "netboot, will not start network" - fi -fi - - -if [ x$showhost = "xtrue" ] -then -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 $ser_install" - - - remove="none $ser_remove" - - daemon_add="mysql mythbackend avahi portmap $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 myth2ipod mythtv-status $ser_install " - remove="$ser_remove" - - daemon_add="mysql mythbackend avahi portmap certmaster $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 $ser_install " - remove=" $ser_remove" - - daemon_add="mythbackend avahi portmap $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 avahi $ser_install" - remove="mysql mythweb$postfix $ser_remove" - - daemon_add="avahi portmap $ser_daemon_add " - daemon_remove="mysql mythbackend $ser_daemon_remove" - ;; - - -esac -setupSyslog -setupfuncminion -fi - -#apply these to ALL types - - - - -#systemtype - -if [ x$showhost = "xtrue" ] -then - setupmysqlnetwork - setupmysql - setupremote - #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 - - - -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" > /data/home/mythtv/.mythtv/smolt.info -echo "remote=$Remotetype" >> /data/home/mythtv/.mythtv/smolt.info - |