summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/LinHES-config-svn/install_functions.sh
diff options
context:
space:
mode:
authorNathan Harris <nharris@eoimaging.com>2009-03-03 16:28:21 (GMT)
committerNathan Harris <nharris@eoimaging.com>2009-03-03 16:28:21 (GMT)
commit02ac0e14081290faebfd699fb4f5e61f726d38ef (patch)
tree5a0f724f9b9dfc0777d44562b55c40b9a5bf7b03 /abs/core-testing/LinHES-config-svn/install_functions.sh
parentee610efa09ba82977a5fac1e5b849577d13daa60 (diff)
downloadlinhes_pkgbuild-02ac0e14081290faebfd699fb4f5e61f726d38ef.zip
linhes_pkgbuild-02ac0e14081290faebfd699fb4f5e61f726d38ef.tar.gz
linhes_pkgbuild-02ac0e14081290faebfd699fb4f5e61f726d38ef.tar.bz2
changed --cpu to --arch in configure
Diffstat (limited to 'abs/core-testing/LinHES-config-svn/install_functions.sh')
-rwxr-xr-xabs/core-testing/LinHES-config-svn/install_functions.sh621
1 files changed, 621 insertions, 0 deletions
diff --git a/abs/core-testing/LinHES-config-svn/install_functions.sh b/abs/core-testing/LinHES-config-svn/install_functions.sh
new file mode 100755
index 0000000..ddade6d
--- /dev/null
+++ b/abs/core-testing/LinHES-config-svn/install_functions.sh
@@ -0,0 +1,621 @@
+#!/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=""
+
+
+function update_db_settings () {
+
+ echo "setting database value $1 to $2 for $hostname"
+ $MYSQLCMD_C "delete from settings where value='${1}' and hostname=\"$hostname\";"
+ $MYSQLCMD_C "REPLACE INTO settings set value='${1}', data='${2}' , hostname=\"$hostname\";"
+}
+
+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))]}
+echo "Selected $pick as the theme"
+update_db_settings Theme "$pick"
+}
+
+
+function splash_setup (){
+ echo $CMDLINE | grep -q splash=silent
+ if [ $? = 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
+ echo "Starting with support for $Remotetype"
+ if [ x$Remotetype = "xdvico" ]
+ then
+ /usr/sbin/lircd -d /dev/usb/hiddev0
+ 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() {
+echo "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 [ $? = 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"
+ update_db_settings HostReceiverType $FoundReceiverType
+ setupremote
+ break
+ fi
+
+done
+}
+
+
+function scan_for_usb_remote () {
+found_remote=1
+echo "Scanning for usb receiver/remote"
+while read line
+do
+ USBID=`echo "$line"|cut -d"|" -f1`
+ lsusb -d "$USBID" > /dev/null 2>/dev/null
+ if [ $? = 0 ]
+ then
+ Remotetype=`echo "$line"|cut -d"|" -f2`
+ echo "Found $Remotetype"
+ setupremote
+ found_remote=0
+ break
+ fi
+done <$BASE/$TEMPLATES/remotes/receiver_usb.id
+if [ $found_remote = 1 ]
+then
+ scan_for_hpg_receiver
+fi
+echo "Scanning for TatIR..."
+if lsusb | grep 04d8:0004 > /dev/null 2>/dev/null
+then
+ /usr/bin/PyroUsb.py > /dev/null 2>&1 &
+fi
+}
+
+function rest_of_network () {
+ #netmask
+ echo $CMDLINE | grep -q netmask
+ if [ $? = 0 ]
+ then
+ TEMPVAR=${CMDLINE#*netmask=}
+ 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
+ echo "netmask not found"
+ fi
+ #gateway
+ echo $CMDLINE | grep -q gateway
+ if [ $? = 0 ]
+ then
+ TEMPVAR=${CMDLINE#*gateway=}
+ GATEWAY=${TEMPVAR%% *}
+ /sbin/route add default gw $GATEWAY
+ update_db_settings HostGW${MYTHDEFAULT} "$GATEWAY"
+
+ else
+ echo "gateway not found"
+ fi
+
+ #dns
+ echo $CMDLINE | grep -q dns
+ if [ $? = 0 ]
+ then
+ TEMPVAR=${CMDLINE#*dns=}
+ DNS=${TEMPVAR%% *}
+ echo "nameserver $DNS" >> /etc/resolv.conf
+ update_db_settings HostDNS${MYTHDEFAULT} "$DNS"
+ else
+ echo "DNS not found"
+ fi
+}
+
+function init_network {
+ echo $CMDLINE |grep -q netdev
+ if [ $? = 0 ]
+ then
+ TEMPVAR=${CMDLINE#*netdev=}
+ MYTHDEFAULT=${TEMPVAR%% *}
+ else
+ MYTHDEFAULT="eth0"
+ fi
+
+
+
+ echo $CMDLINE | grep -q ip
+ if [ $? = 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#*ip=}
+ IP=${TEMPVAR%% *}
+ if [ x$IP = xdhcp ]
+ 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 init_remote {
+ echo $CMDLINE | grep -q remoteport
+ if [ $? = 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 [ $? = 0 ]
+ then
+ TEMPVAR=${CMDLINE#*remote=}
+ Remotetype=${TEMPVAR%% *}
+ setupremote
+ else
+ scan_for_usb_remote
+ fi
+}
+
+#-----------------------
+
+#set -x
+
+partition_it () {
+ROOT=$1
+DATA=$2
+SWAP=$3
+
+if [ ! x$SWAP = xNO ]
+ then
+ SWAPLINE=",$SWAP,S"
+ MKSWAPCMD="mkswap /dev/${disk}2"
+ else
+ SWAPLINE=",0,0"
+ MKSWAPCMD=""
+ fi
+
+if [ x$DATA = xALL ]
+then
+ DATALINE=",,,"
+ EXTRALINE=""
+else
+ DATALINE=",$DATA,,"
+ EXTRALINE=",0,,"
+fi
+sfdisk /dev/$disk -uM << EOF
+,$1,,*
+$SWAPLINE
+$DATALINE
+$EXTRALINE
+;
+EOF
+
+$MKSWAPCMD
+#sfdisk -l /dev/$disk
+}
+
+
+function fscmd () {
+
+case $1 in
+ reiserfs) FSCMDC="mkreiserfs -q -l ROOT"
+ ;;
+
+ xfs) FSCMDC="mkfs -t $1 -f"
+ ;;
+ ext3) FSCMDC="mkfs.ext3"
+ ;;
+ jfs) FSCMDC="mkfs.jfs -q "
+ ;;
+ ext4) FSCMDC="mkfs.ext4"
+ ;;
+ *) FSCMDC="echo $1"
+ ;;
+esac
+}
+
+format_it () {
+ fscmd $1
+ $FSCMDC /dev/${disk}1| tr -s [:cntrl:] \\n
+ fscmd $2
+ $FSCMDC /dev/${disk}3| tr -s [:cntrl:] \\n
+}
+
+mount_it () {
+ if [ ! -d \/$mountpoint ]
+ then
+ mkdir \/$mountpoint
+ fi
+ mount /dev/${disk}1 \/$mountpoint
+ mkdir \/$mountpoint/myth
+ mount /dev/${disk}3 \/$mountpoint/myth
+}
+
+unmount_it () {
+ umount /dev/${disk}1
+ umount /dev/${disk}3
+ umount \/$mountpoint/myth
+ umount \/$mountpoint
+}
+
+
+copy_it () {
+
+ if [ x$1 = xALL ]
+ then
+ echo "Transferring system"
+ unsquashfs -f -d /$mountpoint /.livesys/medium/system.sqf
+ else
+ echo "Upgrading system"
+ unsquashfs -e $1 -f -d /$mountpoint /.livesys/medium/system.sqf
+ fi
+
+ for i in sys proc dev tmp
+ do
+ mkdir /$mountpoint/$i
+
+ done
+ chmod 777 /$mountpoint/tmp
+ mknod /$mountpoint/dev/null c 1 3
+ mknod /$mountpoint/dev/null c 1 5
+ mknod /$mountpoint/dev/console c 5 1
+ chmod +s /$mountpoint/usr/bin/Xorg
+ chmod +s /$mountpoint/usr/bin/crontab
+ chmod +s /$mountpoint/usr/bin/sudo
+ chmod +s /$mountpoint/bin/mount
+
+}
+
+
+device_node () {
+ cd /dev
+ mknod hda b 3 0
+ mknod hda1 b 3 1
+ mknod hda2 b 3 2
+ mknod hda3 b 3 3
+ mknod hda4 b 3 4
+ mknod hda5 b 3 5
+ mknod hda6 b 3 6
+ mknod hda7 b 3 7
+ mknod hda8 b 3 8
+ mknod sda b 8 0
+ mknod sda1 b 8 1
+ mknod sda2 b 8 2
+ mknod sda3 b 8 3
+ mknod sda4 b 8 4
+ mknod sda5 b 8 5
+ mknod sda6 b 8 6
+ mknod sda7 b 8 7
+ mknod sda8 b 8 8
+ mknod sdb b 8 16
+ mknod sdb1 b 8 17
+ mknod sdb2 b 8 18
+ mknod sdb3 b 8 19
+ mknod sdb4 b 8 20
+ mknod sdb5 b 8 21
+ mknod sdb6 b 8 22
+ mknod sdb7 b 8 23
+ mknod sdb8 b 8 24
+ cd -
+ }
+
+
+
+
+function create_fstab()
+{
+echo "creating fstab"
+cat > /$mountpoint/etc/fstab << EOF
+# <file system> <dir> <type> <options> <dump> <pass>
+none /dev/pts devpts defaults 0 0
+none /dev/shm tmpfs defaults 0 0
+/dev/cdrom /media/cdrom auto ro,user,noauto,unhide 0 0
+/dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0
+UUID=ROOTUID / auto defaults 0 1
+UUID=DATAUID /myth auto defaults 0 1
+UUID=SWAPUID swap swap defaults 0 0
+EOF
+
+
+}
+
+
+function find_uuid() {
+ uuid=`blkid -s UUID /dev/$1 |cut -d= -f2|cut -d\" -f2`
+ echo $uuid for $1
+ FOUNDUUID=$uuid
+
+}
+
+
+get_grub_map() {
+ rm /tmp/dev.map
+ /sbin/grub --no-floppy --device-map /tmp/dev.map <<EOF
+quit
+EOF
+}
+
+mapdev() {
+ partition_flag=0
+ device_found=0
+ devs=$(cat /tmp/dev.map | grep -v fd | sed 's/ *\t/ /' | sed ':a;$!N;$!ba;s/\n/ /g')
+ linuxdevice=$(echo $1 | cut -b1-8)
+ if [ "$(echo $1 | egrep '[0-9]$')" ]; then
+ # /dev/hdXY
+ pnum=$(echo $1 | cut -b9-)
+ pnum=$(($pnum-1))
+ partition_flag=1
+ fi
+ for dev in $devs
+ do
+ if [ "(" = $(echo $dev | cut -b1) ]; then
+ grubdevice="$dev"
+ else
+ if [ "$dev" = "$linuxdevice" ]; then
+ device_found=1
+ break
+ fi
+ fi
+ done
+ if [ "$device_found" = "1" ]; then
+ if [ "$partition_flag" = "0" ]; then
+ echo "$grubdevice"
+ else
+ grubdevice_stringlen=${#grubdevice}
+ grubdevice_stringlen=$(($grubdevice_stringlen - 1))
+ grubdevice=$(echo $grubdevice | cut -b1-$grubdevice_stringlen)
+ echo "$grubdevice,$pnum)"
+ fi
+ else
+ echo "DEVICE NOT FOUND"
+ fi
+}
+
+
+dogrub() {
+ get_grub_map
+ sync
+ ROOTDEV=/dev/$1
+ echo $ROOTDEV
+
+ bootdev=$(mapdev $ROOTDEV)
+ echo $bootdev
+ cp -a /$mountpoint/usr/lib/grub/i386-pc/* /$mountpoint/boot/grub/
+ sync
+ # freeze xfs filesystems to enable grub installation on xfs filesystems
+ if [ -x /usr/sbin/xfs_freeze ]; then
+ #/usr/sbin/xfs_freeze -f /$mountpoint > /dev/null 2>&1
+ echo "freezing xfs fs"
+ /usr/sbin/xfs_freeze -f /$mountpoint
+ if [ $? = 0 ]
+ then
+ sleep 40
+ echo "unfreezing xfs"
+ /usr/sbin/xfs_freeze -u /$mountpoint
+ fi
+ fi
+ #$DESTDIR/sbin/grub-install --recheck --root-directory=$DESTDIR $bootdev >/tmp/grub.log 2>&1
+ echo grub-install --recheck --root-directory=/$mountpoint $bootdev
+ grub-install --recheck --root-directory=/$mountpoint $bootdev
+ # unfreeze xfs filesystems
+
+
+ if grep "Error [0-9]*: " /tmp/grub.log >/dev/null; then
+ echo "Error installing GRUB. "
+ return 1
+ fi
+ echo "GRUB was successfully installed."
+}
+
+function removevg () {
+ LIST=`pvscan |grep $1|tr -s " " |cut -d" " -f 5`
+ for vg in $LIST
+ do
+ echo "Removing vg $vg"
+ vgremove -f -v $vg
+ done
+
+
+
+
+}
+
+
+case $1 in
+ partition_it )
+ #drive ROOT DATA(ALL) SWAP(NO)
+ for i in `mount | grep $disk | awk ' { print $1 } '`
+ do
+ umount $i
+ done
+ swap=`cat /etc/fstab |grep $disk|grep swap|awk ' { print $1 } '`
+ swapoff $swap
+ removevg $disk
+ partition_it $3 $4 $5
+ exit 0
+
+ ;;
+ format_it )
+ device_node
+
+ format_it $3 $4
+ exit 0
+ ;;
+ mount_it )
+ mount_it
+ ;;
+ copy_it )
+ copy_it $3
+
+ ;;
+
+
+ fstab_fix_it)
+ echo $@ >> /tmp/fstab.input
+ if [ ! -f /$mountpoint/etc/fstab ]
+ then
+ create_fstab
+ fi
+ #was 5
+ if [ x$3 = xUPGRADE ]
+ then
+ if [ ! -f /tmp/etc/KnoppMyth-version ]
+ then
+ if [ -f /tmp/etc/fstab ]
+ then
+ cp -f /tmp/etc/fstab /$mountpoint/etc/fstab
+ else
+ create_fstab
+ fi
+ else
+ create_fstab
+ fi
+ fi
+
+ #search for UUID
+ FOUNDUUID=""
+ find_uuid ${2}1
+ ROOTUUID=$FOUNDUUID
+ echo "--"
+ echo $ROOTUUID
+ echo "--"
+ FOUNDUUID=""
+ find_uuid ${2}2
+ SWAPUUID=$FOUNDUUID
+
+ FOUNDUUID=""
+ if [ x$4 = x ]
+ then
+ #upgrade
+ find_uuid ${2}3
+ elif [ x$5 = xFULL_INSTALL ]
+ then
+ #install
+ find_uuid ${2}3
+ else
+ #upgrade with non statndard myth
+ find_uuid $4
+ fi
+
+ DATAUUID=$FOUNDUUID
+
+
+
+ sed -i -e "s/.*\/\ .*$/UUID=$ROOTUUID \/ auto defaults,noatime 0 1/g" /$mountpoint/etc/fstab
+ sed -i -e "s/.*\/myth\ .*$/UUID=$DATAUUID \/myth auto defaults,noatime 0 1/g" /$mountpoint/etc/fstab
+ sed -i -e "s/.*swap\ .*$/UUID=$SWAPUUID swap swap defaults 0/g" /$mountpoint/etc/fstab
+
+#if Knoppmyth upgrade then loop through old fstab picking out vg
+ if [ -f /tmp/etc/KnoppMyth-version ]
+ then
+ if [ -f /tmp/etc/fstab ]
+ then
+ grep -q /dev/vg /tmp/etc/fstab
+ if [ $? = 0 ]
+ then
+ grep /dev/vg /tmp/etc/fstab >> /$mountpoint/etc/fstab
+ grep /dev/vg /tmp/etc/fstab | awk -v mount=$mountpoint ' { print "/" mount $2 }' |xargs mkdir
+ grep /dev/vg /tmp/etc/fstab | awk -v mount=$mountpoint ' { print "/" mount $2 }' |xargs chown -R mythtv:users
+ fi
+ fi
+ fi
+ ;;
+
+ grub_it )
+
+ #grub-install --recheck --no-floppy --root-directory=/$mountpoint "(hd0)"
+ #fixing grub/menu.1st
+ dogrub ${disk}
+ FOUNDUUID=""
+ find_uuid ${disk}1
+ ROOTUUID=$FOUNDUUID
+ sed -i -e "s/root=.\S*/root=\/dev\/disk\/by-uuid\/$ROOTUUID/g" /$mountpoint/boot/grub/menu.lst
+ mkinitcpio -g /$mountpoint/boot/kernel26.img
+ ;;
+ umount_it)
+ umount \/$mountpoint/myth
+ umount \/$mountpoint
+ ;;
+ update_db_it )
+ update_db_settings "$2" "$3"
+ ;;
+
+
+esac
+
+
+