From c4fb1a3c13043bc6c2dd7fee59e6477ad3fb5f19 Mon Sep 17 00:00:00 2001 From: James Meyer <james.meyer@operamail.com> Date: Thu, 4 Jun 2009 08:42:55 -0500 Subject: linhes-config: convert systemconfig.sh to nothing but a proxy for systemconfig.py --- abs/core-testing/LinHES-config/systemconfig.sh | 1444 +----------------------- 1 file changed, 1 insertion(+), 1443 deletions(-) diff --git a/abs/core-testing/LinHES-config/systemconfig.sh b/abs/core-testing/LinHES-config/systemconfig.sh index 54d3b01..4f58ee2 100755 --- a/abs/core-testing/LinHES-config/systemconfig.sh +++ b/abs/core-testing/LinHES-config/systemconfig.sh @@ -4,1453 +4,11 @@ #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_add" - - ;; - esac - else - # disable evrouter - daemon_remove="evrouter Xvfb $daemon_remove" - fi - - - - -} - - - -function scrubnfs { - cp_and_log /etc/fstab $TEMPLATES/fstab.conf.template - - sed '/^#STARTSCRUB.*$/,/^#ENDSCRUB.*$/d' $TEMPLATES/fstab.conf.template > ${BASE}/etc/fstab -} - -function setupfstab () { -# setupfstab $NFSserver $NFSshare $NFSmount - echo "#STARTSCRUB --------------anything in this block will be scrubbed" >> ${BASE}/etc/fstab - 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 - echo "#ENDSCRUB" >> ${BASE}/etc/fstab -} - -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 mythmovies 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 nfs-utils 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 <<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 -if [ x = x$PID ] -then - echo "Mythfrontend not running, will not reload" -else - kill -s USR1 $PID -fi -exit 0 - -} - - -function setup_db (){ - - install="mysql avahi" - 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 -} - -function setup_web_auth { - if [ x$UseMythWEB_auth = x1 ] - then - #enable auth - sed -ie "s/^.*include.*auth-inc.conf.*$/include \"\/etc\/lighttpd\/auth-inc.conf\"/g" /etc/lighttpd/lighttpd.conf - else - #disable auth - sed -ie "s/^.*include.*auth-inc.conf.*$/#include \"\/etc\/lighttpd\/auth-inc.conf\"/g" /etc/lighttpd/lighttpd.conf - fi - sudo sv restart lighttpd - -} - - -function mplayer_saver_check () { - if [ ! -f $BASE/etc/mplayer/mplayer.conf ] - then - mkdir -p $BASE/etc/mplayer - touch $BASE/etc/mplayer/mplayer.conf - #cp -f $TEMPLATES/mplayer.conf.template $BASE/etc/mplayer/mplayer.conf - fi - grep -q stop-xscreensaver $BASE/etc/mplayer/mplayer.conf - if [ $? = 0 ] - then - sed -i "s/^.*stop-xscreensaver.*$/stop-xscreensaver = 1 / g" $BASE/etc/mplayer/mplayer.conf - else - echo stop-xscreensaver = 1 >> $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" - ;; - user) - if [ x$rootSSH = "x1" ] - then - sed -i "s/^.*PermitRootLogin.*$/PermitRootLogin yes/" $BASE/etc/ssh/sshd_config - else - sed -i "s/^.*PermitRootLogin.*$/PermitRootLogin no/" $BASE/etc/ssh/sshd_config - fi - sv hup sshd - ;; - 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 avahi portmap nfs-utils local-website $ser_install" - remove="none $ser_remove" - - daemon_add="mysql mythbackend avahi portmap nfs-utils 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 nfs-utils local-website myth2ipod mythtv-status $ser_install " - remove="$ser_remove" - - daemon_add="mysql mythbackend avahi portmap nfs-utils 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 nfs-utils $ser_install " - remove=" $ser_remove" - - daemon_add="mythbackend avahi portmap nfs-utils 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 nfs-utils avahi local-website $ser_install" - remove="mysql mythweb$postfix $ser_remove" - - daemon_add="avahi portmap nfs-utils 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 +systemconfig.py -m $@ -- cgit v0.12