summaryrefslogtreecommitdiffstats
path: root/abs/core/LinHES-config/install_functions.sh
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/LinHES-config/install_functions.sh')
-rwxr-xr-xabs/core/LinHES-config/install_functions.sh344
1 files changed, 344 insertions, 0 deletions
diff --git a/abs/core/LinHES-config/install_functions.sh b/abs/core/LinHES-config/install_functions.sh
new file mode 100755
index 0000000..83a2bed
--- /dev/null
+++ b/abs/core/LinHES-config/install_functions.sh
@@ -0,0 +1,344 @@
+#!/bin/bash
+. /etc/profile
+
+disk=$2
+mountpoint=new_boot
+
+#-------------------------------------------
+MYTHDBUSER=mythtv
+MYTHTVPASSWD=mythtv
+CMDLINE=$(cat /proc/cmdline)
+hostname=`hostname`
+MYSQLCMD_C="mysql -u$MYTHDBUSER -p$MYTHTVPASSWD mythconverg -B --exec"
+BASE=""
+found_remote=1
+
+function update_db_settings () {
+
+ printhl " setting database value $1 to $2 for $hostname"
+ $MYSQLCMD_C "delete from settings where value='${1}' and hostname=\"$hostname\";" 2>/dev/null
+ $MYSQLCMD_C "REPLACE INTO settings set value='${1}', data='${2}' , hostname=\"$hostname\";" 2>/dev/null
+}
+
+function random_theme () {
+THEMES="basic-blue
+basic-green
+basic-red
+basic-purple
+basic-amber"
+
+theme=($THEMES) # Read into array variable.
+
+num_themes=${#theme[*]} # Count how many elements.
+
+pick=${theme[$((RANDOM%num_themes))]}
+printhl " Selected $pick as the theme"
+update_db_settings Theme "$pick"
+}
+
+function parse_cmdline_2_db(){
+ echo $CMDLINE | grep -q displayres
+ if [ $? -eq 0 ]
+ then
+ TEMPVAR=${CMDLINE#*displayres=}
+ update_db_settings HostXres $TEMPVAR
+ fi
+
+}
+
+
+function bootsplash_setup (){
+ echo $CMDLINE | grep -q splash=silent
+ if [ $? -eq 0 ]
+ then
+ update_db_settings Hostbootsplash 1
+ else
+ update_db_settings Hostbootsplash 0
+ fi
+}
+
+
+function setupremote {
+ [ -e $BASE/etc/lircd.conf ] && mv -f $BASE/etc/lircd.conf $BASE/etc/lircd.conf.`date +%Y-%m-%d-%H-%M`
+ if [ -d $TEMPLATES/remotes/$Remotetype ]
+ then
+ cd $TEMPLATES/remotes/$Remotetype
+ for i in lircd*
+ do
+ cat $i >> $BASE/etc/lircd.conf
+ done
+ cp -f lircrc* $BASE/etc/lircrc 2> /dev/null
+ [ -e /etc/lircrc ] && chmod 755 /etc/lircrc
+ update_db_settings HostRemoteType "$Remotetype"
+ #special case for special remote
+ printhl "Starting with support for $Remotetype"
+ if [ "$Remotetype" == "dvico" ]
+ then
+ /usr/sbin/lircd -d /dev/usb/hiddev0 --driver=dvico
+ elif [ "$Remotetype" == "Dvico-Dual-Digital4-rev2" ]
+ then
+ /usr/sbin/lircd -d /dev/input/irremote --driver=devinput
+ else
+ /usr/sbin/lircd -d /dev/lirc0
+ fi
+ [ -e /root/.mythtv ] || mkdir /root/.mythtv 2>/dev/null
+ ln -s /etc/lircrc /root/.mythtv/lircrc 2>/dev/null
+ else
+ echo "Couldn't open directory $TEMPLATES/remotes/$Remotetype"
+ fi
+}
+
+function scan_for_hpg_receiver() {
+printhl " Scanning for Hauppauge receiver"
+for hpgid in `lspci -nm -d4444: |cut -d" " -f6- |tr -d '"'|tr " " :`
+do
+ line=`grep $hpgid $TEMPLATES/remotes/i2c.id`
+ if [ $? -eq 0 ]
+ then
+ modprobe lirc_i2c
+ FoundReceiverType=`echo "$line"|cut -d"|" -f2`
+ Remotetype=`echo "$line"|cut -d"|" -f4`
+ statusline=`echo "$line"|cut -d"|" -f2,4`
+ #echo "Found $statusline , $Remotetype"
+ echo "Found Hauppauge"
+ echo "-------------------"
+ echo " 1) Hauppauge black"
+ echo " 2) Hauppauge silver"
+ echo " 3) hauppauge-grey-g3"
+ echo ""
+ read -p "Which Hauppauge remote (5 sec): " -t 5 ans
+ echo
+ if [ "$?" != "0" ]; then
+ echo
+ echo "Using default $Remotetype"
+ else
+ case $ans in
+ 1) Remotetype="hauppauge-black";;
+ 2) Remotetype="hauppauge-silver";;
+ 3) Remotetype="hauppauge-grey-g3" ;;
+ *) echo "Using default $Remotetype";;
+ esac
+ fi
+ update_db_settings HostReceiverType $FoundReceiverType
+ found_remote=0
+ setupremote
+ break
+ fi
+done
+}
+
+
+function scan_for_usb_remote () {
+#found_remote=1
+printhl " Scanning for usb receiver/remote"
+while read line
+do
+ USBID=`echo "$line"|cut -d"|" -f1`
+ lsusb -d "$USBID" > /dev/null 2>/dev/null
+ if [ $? -eq 0 ]
+ then
+ Remotetype=`echo "$line"|cut -d"|" -f2`
+ printhl "Found $Remotetype"
+ setupremote
+ found_remote=0
+ break
+ fi
+done <$BASE/$TEMPLATES/remotes/receiver_usb.id
+if [ $found_remote -eq 1 ]
+then
+ scan_for_hpg_receiver
+fi
+printhl " Scanning for TatIR"
+if lsusb | grep 04d8:0004 > /dev/null 2>/dev/null
+then
+ /usr/bin/PyroUsb.py > /dev/null 2>&1 &
+fi
+
+if [ $found_remote -eq 1 ]
+then
+#No remote found_remote
+ update_db_settings HostRemoteType "no_remote"
+fi
+
+}
+
+function rest_of_network () {
+ #netmask
+ echo $CMDLINE | grep -q cnetmask
+ if [ $? -eq 0 ]
+ then
+ TEMPVAR=${CMDLINE#*cnetmask=}
+ NETMASK=${TEMPVAR%% *}
+ /sbin/ifconfig eth0 $IP netmask $NETMASK
+ nm=`/usr/bin/nmconv.py -obits $NETMASK`
+ NETMASK="/$nm $NETMASK"
+ #echo $NETMASK
+ update_db_settings HostNETMASK${MYTHDEFAULT} "$NETMASK"
+ else
+ printhl " Netmask not found"
+ fi
+ #gateway
+ echo $CMDLINE | grep -q cgateway
+ if [ $? -eq 0 ]
+ then
+ TEMPVAR=${CMDLINE#*cgateway=}
+ GATEWAY=${TEMPVAR%% *}
+ /sbin/route add default gw $GATEWAY
+ update_db_settings HostGW${MYTHDEFAULT} "$GATEWAY"
+ else
+ printhl " Gateway not found"
+ fi
+
+ #dns
+ echo $CMDLINE | grep -q cdns
+ if [ $? -eq 0 ]
+ then
+ TEMPVAR=${CMDLINE#*cdns=}
+ DNS=${TEMPVAR%% *}
+ echo "nameserver $DNS" >> /etc/resolv.conf
+ update_db_settings HostDNS${MYTHDEFAULT} "$DNS"
+ else
+ printhl " DNS not found"
+ fi
+ echo $CMDLINE | grep -q chostname
+ if [ $? -eq 0 ]
+ then
+ TEMPVAR=${CMDLINE#*chostname=}
+ MYHOST=${TEMPVAR%% *}
+ update_db_settings HostMyhostname "$MYHOST"
+ else
+ printhl " hostname not found"
+ fi
+}
+
+function init_network {
+ echo $CMDLINE |grep -q cnetdev
+ if [ $? -eq 0 ]
+ then
+ TEMPVAR=${CMDLINE#*cnetdev=}
+ MYTHDEFAULT=${TEMPVAR%% *}
+ else
+ MYTHDEFAULT="eth0"
+ fi
+
+ echo $CMDLINE | grep -q ip
+ if [ $? -eq 0 ]
+ then
+ update_db_settings HostDefaulteth0 0
+ update_db_settings HostDefault${MYTHDEFAULT} 1
+
+ update_db_settings HostActiveonbooteth0 0
+ update_db_settings HostActiveonboot${MYTHDEFAULT} 1
+ update_db_settings HostNetDevice ${MYTHDEFAULT}
+
+ TEMPVAR=${CMDLINE#*cip=}
+ IP=${TEMPVAR%% *}
+ if [ "$IP" == "dhcp" ]
+ then
+ /sbin/dhcpcd $MYTHDEFAULT
+ update_db_settings HostUseDHCP${MYTHDEFAULT} 0
+ else
+ /sbin/ifconfig ${MYTHDEFAULT} $IP
+ update_db_settings HostUseDHCP${MYTHDEFAULT} 1
+ update_db_settings HostIP${MYTHDEFAULT} "$IP"
+ rest_of_network
+ fi
+ fi
+
+
+
+
+}
+
+function dev_up_check(){
+ /sbin/ifconfig $1 1>/dev/null 2>/dev/null
+ status=$?
+ if [ $status -eq 1 ]
+ then
+ return 0
+ else
+ devip=`/sbin/ifconfig | grep -C1 $1| grep inet|grep -v inet6 | cut -d: -f2 | awk '{ print $1}'`
+ if [ "x$devip" = "x" ]
+ then
+ return 1
+ else
+ return 0
+ fi
+ fi
+}
+
+function request_dhcp(){
+ echo $CMDLINE |grep -q cnetdev
+ if [ $? -eq 0 ]
+ then
+ TEMPVAR=${CMDLINE#*cnetdev=}
+ MYTHDEFAULT_NET=${TEMPVAR%% *}
+ else
+ MYTHDEFAULT_NET="eth0"
+ fi
+ for ndev in eth0 eth1 wlan0 wlan1 ath0
+ do
+ dev_up_check $ndev
+ status=$?
+ if [ $status -eq 1 ]
+ then
+ #interface is down, lets see if dhcp responds
+ dhcpcd -Td -t2 $ndev -h "" > /tmp/dhcpinfo.$ndev 2>/dev/null
+ #check for hostname here
+
+ TEMPVAR=`grep new_ip_address /tmp/dhcpinfo.$ndev |cut -d\= -f2`
+ if [ ! x$TEMPVAR = x ]
+ then
+ update_db_settings HostIP$ndev "$TEMPVAR"
+ TEMPVAR=`grep new_subnet_mask /tmp/dhcpinfo.$ndev |cut -d\= -f2`
+ nm=`/usr/bin/nmconv.py -obits $TEMPVAR`
+ TEMPVAR="/$nm $TEMPVAR"
+ update_db_settings HostNETMASK$ndev "$TEMPVAR"
+ TEMPVAR=`grep new_routers /tmp/dhcpinfo.$ndev |cut -d\= -f2`
+ update_db_settings HostGW$ndev "$TEMPVAR"
+ TEMPVAR=`grep new_domain_name_servers /tmp/dhcpinfo.$ndev |cut -d\= -f2| tr -d \"|tr -d \'|cut -d" " -f 1`
+ update_db_settings HostDNS$ndev "$TEMPVAR"
+ fi
+ fi
+ done
+ TEMPVAR=`grep new_host_name /tmp/dhcpinfo.$MYTHDEFAULT_NET |cut -d\= -f2`
+ if [ ! x$TEMPVAR = x ]
+ then
+ update_db_settings HostMyhostname "$TEMPVAR"
+ fi
+
+}
+
+function init_remote {
+ echo $CMDLINE | grep -q remoteport
+ if [ $? -eq 0 ]
+ then
+ TEMPVAR=${CMDLINE#*remoteport=}
+ REMOTEPORT=${TEMPVAR%% *}
+ if [ x"$ReceiverType" = "xSerial" ]
+ then
+ if [ -e /dev/$REMOTEPORT ]
+ then
+ /usr/bin/setserial /dev/$REMOTEPORT uart none
+ /sbin/modprobe lirc_serial
+ update_db_settings HostReceiverType Serial
+ update_db_settings HostSerialPortlirc "$REMOTEPORT"
+ fi
+ fi
+
+ fi
+
+ echo $CMDLINE | grep -q remote
+ if [ $? -eq 0 ]
+ then
+ TEMPVAR=${CMDLINE#*remote=}
+ Remotetype=${TEMPVAR%% *}
+ setupremote
+ else
+ scan_for_usb_remote
+ fi
+}
+
+#-----------------------
+
+