summaryrefslogtreecommitdiffstats
path: root/abs/core/linhes-scripts
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/linhes-scripts')
-rwxr-xr-xabs/core/linhes-scripts/770-wrapper.sh2
-rw-r--r--abs/core/linhes-scripts/PKGBUILD48
-rw-r--r--abs/core/linhes-scripts/dct700-cc.sh27
-rw-r--r--abs/core/linhes-scripts/install_hulu.sh70
-rwxr-xr-xabs/core/linhes-scripts/limit-mythcommflag.sh95
-rw-r--r--abs/core/linhes-scripts/linhes-scripts.install7
-rw-r--r--abs/core/linhes-scripts/linhes_update.sh19
-rw-r--r--abs/core/linhes-scripts/linhes_update2.sh15
-rw-r--r--abs/core/linhes-scripts/linhes_update3.sh7
-rwxr-xr-xabs/core/linhes-scripts/myth2fuze318
-rwxr-xr-xabs/core/linhes-scripts/mythwelcome-config.py27
-rwxr-xr-xabs/core/linhes-scripts/mythwelcome-set-alarm.sh2
-rwxr-xr-xabs/core/linhes-scripts/qip7100-cc.sh25
-rw-r--r--abs/core/linhes-scripts/remove_php_mythvideo.sh13
-rwxr-xr-xabs/core/linhes-scripts/removecommercials.sh213
-rwxr-xr-xabs/core/linhes-scripts/screenshooter.sh4
-rwxr-xr-xabs/core/linhes-scripts/shootscreens-mythtv.sh14
-rwxr-xr-xabs/core/linhes-scripts/shootscreens.sh23
-rwxr-xr-xabs/core/linhes-scripts/system-cleanup.sh47
-rw-r--r--abs/core/linhes-scripts/update_schema_021_to_022.sh21
-rwxr-xr-xabs/core/linhes-scripts/upgrade_linhes.sh136
-rw-r--r--abs/core/linhes-scripts/upgrade_to_0.22.sh94
22 files changed, 1166 insertions, 61 deletions
diff --git a/abs/core/linhes-scripts/770-wrapper.sh b/abs/core/linhes-scripts/770-wrapper.sh
index 65573f4..3095541 100755
--- a/abs/core/linhes-scripts/770-wrapper.sh
+++ b/abs/core/linhes-scripts/770-wrapper.sh
@@ -26,7 +26,7 @@ fi
# Transcode the file
-perl /usr/local/bin/770-encode.pl -q -p mplayer $VIDEODIR/$FILENAME $DIROUT/$TITLE-$STARTTIME.avi
+perl /usr/bin/tablet-encode -q -p mplayer $VIDEODIR/$FILENAME $DIROUT/$TITLE-$STARTTIME.avi
chmod 664 $DIROUT/$TITLE-$STARTTIME.avi
diff --git a/abs/core/linhes-scripts/PKGBUILD b/abs/core/linhes-scripts/PKGBUILD
index 4b3244f..d4bdc50 100644
--- a/abs/core/linhes-scripts/PKGBUILD
+++ b/abs/core/linhes-scripts/PKGBUILD
@@ -3,12 +3,13 @@
pkgname=linhes-scripts
pkgver=1
-pkgrel=35
+pkgrel=77
pkgdesc="Various scripts that help to make LinHES, LinHES."
arch=('i686' 'x86_64')
license=('GPL2')
depends=('xosd' 'cpulimit')
url="http://linhes.org/"
+install="linhes-scripts.install"
source=(
myth2xvid
shootscreens.sh
@@ -23,6 +24,7 @@ pause-mythcommflag.sh
myth2x264
770-wrapper.sh
mythwelcome-set-alarm.sh
+mythwelcome-config.py
pause_mythcommflag
limit-mythcommflag.sh
vdpau-detector
@@ -32,12 +34,21 @@ run-limit-mythcommflag
linhes_update.sh
linhes_update2.sh
linhes_update3.sh
+install_hulu.sh
+update_schema_021_to_022.sh
+upgrade_linhes.sh
+remove_php_mythvideo.sh
+removecommercials.sh
+system-cleanup.sh
+myth2fuze
+dct700-cc.sh
+qip7100-cc.sh
)
build() {
cd $startdir/src
mkdir -p $startdir/pkg/usr/LH/bin
- install -D -m755 myt* 770* idle.sh imp* shoo* *commflag*sh mplayer* vdpau* screen* linhes_* $startdir/pkg/usr/LH/bin
+ install -D -m755 myt* 770* *.sh imp* shoo* *commflag*sh mplayer* vdpau* screen* linhes_* install_hulu.sh $startdir/pkg/usr/LH/bin
mkdir -p $startdir/pkg/etc/sv/pause-mythcommflag/supervise
cp run-pause-mythcommflag $startdir/pkg/etc/sv/pause-mythcommflag/run
mkdir -p $startdir/pkg/etc/sv/limit-mythcommflag/supervise
@@ -45,3 +56,36 @@ build() {
mkdir -p $startdir/pkg/etc/logrotate.d/
cp pause_mythcommflag $startdir/pkg/etc/logrotate.d/
}
+
+md5sums=('f56985b2d602e11dc1e10d3e7848b2a5'
+ '9a2181cdc0bc9cc8b42101f19620def8'
+ '9ae2cd7a0c42d57ad8b5f515d7d60196'
+ '1274bad3fb7296f00acd2d44804bad14'
+ '47225fa9b6c953d56f6ede84d921a300'
+ '6b6e7d34a4bda6d608d150039adefd07'
+ '3fe554dbbf7d09e1f9925032ba888bf5'
+ '18263972b6326e140bbef0bb7dfa2da9'
+ '410795ef9039e4c6c0484e706ecfd567'
+ '0750d7c65109d12aa536f312a38410d1'
+ 'ac2a4a6b4100f4d7bfb9ecd9356c8c6e'
+ 'd2b475821f902c5e081e7da43a35e6ac'
+ '95c092f67036a361ef7a57436f44332e'
+ 'a87e7394bfb3fcc5c2419a2f9ae9b9aa'
+ '3b776bbff68906ddc2f62b7e0dde3fe4'
+ '15f3143d2b1369da431e4268029aba40'
+ '3d0adf26280cde55a0c47188fff34826'
+ '93aaa2940e33ec9ebb305b839ac46a3e'
+ '27a8b3680f3c631a582064fd26ab8746'
+ 'b527b01d119d3bc33b8fa69bdf1082bb'
+ 'c537c44156d8404016cc4b405b092d45'
+ '4e66f302a77f1a857476e7f289d0c157'
+ 'be324dba44ae96676973a74421944853'
+ 'ccca6bdbbd86b203a3eecdbbe363e701'
+ '65629302a4d2c3adf88cdf0ebc10d493'
+ '2734054f08c4c885bb9070dce239d4c3'
+ '87b0dc855181f98516acb18a7d551601'
+ '25c1baeb97a49656456ae33f7e7a9f06'
+ '2fb25aef03ffd1282414d8cca3df7056'
+ 'd2a29444ab9036fb385bbf044daf1ff5'
+ 'df727c98350a64e2171c950bbefc9c5d'
+ '7b890e7044db38e8d439f67e398af206')
diff --git a/abs/core/linhes-scripts/dct700-cc.sh b/abs/core/linhes-scripts/dct700-cc.sh
new file mode 100644
index 0000000..c8d8cf6
--- /dev/null
+++ b/abs/core/linhes-scripts/dct700-cc.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+#Script to control DCT 700/2524 on emitter #1 of CommandIR
+irsend set_transmitters 1
+REMOTE_NAME=DCT700
+cmd="$1"
+irsend -d /dev/lircd SEND_ONCE $REMOTE_NAME menu
+sleep 1
+irsend -d /dev/lircd SEND_ONCE $REMOTE_NAME exit
+sleep 1
+
+case $cmd in
+ [0-9]*)
+ for digit in $(echo $1 | sed -e 's/./& /g'); do
+ irsend -d /dev/lircd SEND_ONCE $REMOTE_NAME $digit
+ sleep .2
+ # If things work OK with sleep 1, try this for faster channel changes:
+ # sleep 0.3
+ done
+ irsend -d /dev/lircd SEND_ONCE $REMOTE_NAME ok
+sleep .3
+ irsend -d /dev/lircd SEND_ONCE $REMOTE_NAME exit
+ ;;
+
+ *)
+ irsend SEND_ONCE $REMOTE_NAME $cmd
+ ;;
+esac
diff --git a/abs/core/linhes-scripts/install_hulu.sh b/abs/core/linhes-scripts/install_hulu.sh
new file mode 100644
index 0000000..9b06b2e
--- /dev/null
+++ b/abs/core/linhes-scripts/install_hulu.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+#install_hulu.sh
+if [ -e /tmp/huludesktop_i386.deb ]
+then
+cd /tmp
+deb2targz huludesktop_i386.deb
+tar -xzvf huludesktop_i386.tar.gz -C /
+else
+echo "Cannot find huludesktop_i386.deb."
+echo "Please download it from http://www.hulu.com/labs/hulu-desktop-linux"
+echo "Then copy (or move) it to /tmp"
+exit
+fi
+if grep -q Hulu /usr/share/mythtv/themes/defaultmenu/is.xml
+then
+echo "Hulu Desktop exist in Online Streams!"
+else
+ mv /usr/share/mythtv/themes/defaultmenu/is.xml /tmp
+ grep -v -e /mythmenu /tmp/is.xml > /tmp/is.xml.tmp
+ echo "<!--#Hulu-->" >> /tmp/is.xml.tmp
+ echo " <button>" >> /tmp/is.xml.tmp
+ echo " <type>STREAM</type>" >> /tmp/is.xml.tmp
+ echo " <text>Hulu Desktop</text>" >> /tmp/is.xml.tmp
+ echo " <action>EXEC huludesktop</action>" >> /tmp/is.xml.tmp
+ echo " </button>" >> /tmp/is.xml.tmp
+ echo "<!--#Hulu-->" >> /tmp/is.xml.tmp
+ echo "" >> /tmp/is.xml.tmp
+ echo "</mythmenu>" >> /tmp/is.xml.tmp
+ mv /tmp/is.xml.tmp /usr/share/mythtv/themes/defaultmenu/is.xml
+echo "Hulu Desktop has been added to Online Streams!"
+fi
+if [ -e /home/mythtv/.huludesktop ]
+then
+echo "Found existing Hulu configuration file."
+else
+cat >> /home/mythtv/.huludesktop << EOF
+[display]
+fullscreen = TRUE
+width = 1024
+height = 576
+pos_x = 201
+pos_y = 179
+
+[remote]
+lirc_device = /dev/lircd
+lirc_remote_identifier = mceusb
+lirc_release_suffix = _UP
+lirc_repeat_threshold = 10
+button_name_up = Up
+button_name_down = Down
+button_name_left = Left
+button_name_right = Right
+button_name_select = OK
+button_name_menu = Home
+
+[flash]
+flash_location = /usr/lib/mozilla/plugins/libflashplayer.so
+
+[screensaver]
+suspend_script = /usr/bin/xscreensaver-command -deactivate
+resume_script = /usr/bin/xscreensaver-command -activate
+
+[version]
+latest = (null)
+eula_version = 0
+EOF
+chown mythtv.mythtv /home/mythtv/.huludesktop
+fi
+echo "Integration of Hulu Desktop is now complete!"
+echo "Thanks for using LinHES!"
diff --git a/abs/core/linhes-scripts/limit-mythcommflag.sh b/abs/core/linhes-scripts/limit-mythcommflag.sh
index 8ca61c7..5cd81bb 100755
--- a/abs/core/linhes-scripts/limit-mythcommflag.sh
+++ b/abs/core/linhes-scripts/limit-mythcommflag.sh
@@ -1,6 +1,7 @@
#!/bin/bash
-# limit-mythcommflag.sh v0.1 05/17/09
-# Utility to automatically limit mythcommflag if CPU usage is above a certain level.
+# limit-mythcommflag.sh v0.2 03/2/10
+# Utility to automatically limit mythcommflag if CPU system load is above a certain level
+# and if backend usage is above a certain level
# Uses cpulimit from http://cpulimit.sourceforge.net/
# Free for any use.
# Installation:
@@ -8,47 +9,83 @@
# chmod +x /usr/LH/bin/limit-mythcommflag.sh
# Usage: Executed from runit limit-mythcommflag at boot
-# Threshold for when mythcommflag will be paused
-CPUTHRESHOLD=43
-
-# Limit mythcommflag to percentage
-LIMITCPU=20
-
-# Log file to write (use /dev/null for no log)
-#LOG=/var/log/mythtv/limit-mythcommflag.log
-LOG=/dev/null
-
+#-----OPTIONS______
# Number of seconds to wait between checking for mythcommflag process
SLEEP=5
+# Backend and Frontend thresholds above which mythcommflag is stopped
+BETHRESHOLD=30
+FETHRESHOLD=55
-#sleep $SLEEP
+# FUNCTIONS
+limit_cpu()
+# Arg_1 = LimitedRangeNum; Arg_2 = CPULimitPercent; Arg_3 = Commflag PID
+{
+if [ $ALREADYLIMITED -ne $1 ] ; then
+ if [ $cpulimit_pid -ne 0 ]; then
+ kill $cpulimit_pid
+ fi
+ cpulimit -p $3 -l $2 &
+ cpulimit_pid=$!
+ ALREADYLIMITED=$1
+fi
+}
-touch $LOG
+stop_limit()
+{
+if [ $ALREADYLIMITED -ne 0 ]; then
+ if [ $cpulimit_pid -ne 0 ]; then
+ kill $cpulimit_pid
+ cpulimit_pid=0
+ fi
+ ALREADYLIMITED=0
+fi
+}
ALREADYLIMITED=0
+STOPPED=0
+cpulimit_pid=0
while true; do
PROCCOMMFLAG=`pidof mythcommflag`
- if [ -n "${PROCCOMMFLAG}" ]
- then
- FRONTENDCPU=`top -bn1u mythtv | grep mythfrontend | awk '{ print $9 }'`
- if [ "$FRONTENDCPU" -ge "$CPUTHRESHOLD" ]
- then
- echo "$(date) FE CPU $FRONTENDCPU% is greater than $CPUTHRESHOLD%, LIMIT Commflagging" # >> $LOG
- if [ $ALREADYLIMITED -eq 0 ]; then
- cpulimit -e mythcommflag -l $LIMITCPU &
- cpulimit_pid=$!
- ALREADYLIMITED=1
+ if [ -n "${PROCCOMMFLAG}" ]; then
+ BACKENDCPU=`top -bn1u mythtv | grep -m 1 mythbackend | awk '{ print $9 }'`
+ FRONTENDCPU=`top -bn1u mythtv | grep -m 1 mythfrontend | awk '{ print $9 }'`
+ if [ "$FRONTENDCPU" = "" ]; then
+ FRONTENDCPU=0
+ fi
+ if [ "$BACKENDCPU" -ge "$BETHRESHOLD" ]; then
+ if [ "$FRONTENDCPU" -ge $FETHRESHOLD ]; then
+ if [ $STOPPED -eq 0 ]; then
+ kill -s STOP $PROCCOMMFLAG
+ STOPPED=1
+ fi
+ else
+ if [ $STOPPED -eq 1 ]; then
+ kill -s CONT $PROCCOMMFLAG
+ STOPPED=0
+ fi
+ stop_limit
fi
else
- echo "$(date) FE CPU $FRONTENDCPU% is less than $CPUTHRESHOLD%, UNLIMIT Commflagging" #>> $LOG
- if [ $ALREADYLIMITED -eq 1 ]; then
- kill $cpulimit_pid
- ALREADYLIMITED=0
+ if [ $STOPPED -eq 1 ]; then
+ kill -s CONT $PROCCOMMFLAG
+ STOPPED=0
fi
+ case $FRONTENDCPU in
+ [0-9]|[0-3][0-9] )
+ stop_limit;;
+ [4-5][0-9] )
+ limit_cpu "1" "70" $PROCCOMMFLAG;;
+ [6-7][0-9] )
+ limit_cpu "2" "50" $PROCCOMMFLAG;;
+ [8-9][0-9] )
+ limit_cpu "3" "20" $PROCCOMMFLAG;;
+ [1][0-9][0-9] )
+ limit_cpu "4" "10" $PROCCOMMFLAG;;
+ esac
fi
# else
-# echo "No COMMFLAG Process Active" >> $LOG
+# echo "No COMMFLAG Process Active"
fi
sleep $SLEEP
done
diff --git a/abs/core/linhes-scripts/linhes-scripts.install b/abs/core/linhes-scripts/linhes-scripts.install
new file mode 100644
index 0000000..f554bd0
--- /dev/null
+++ b/abs/core/linhes-scripts/linhes-scripts.install
@@ -0,0 +1,7 @@
+
+post_upgrade() {
+ . /etc/profile
+ /usr/LH/bin/remove_php_mythvideo.sh
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/linhes-scripts/linhes_update.sh b/abs/core/linhes-scripts/linhes_update.sh
index 3b455e0..39d2817 100644
--- a/abs/core/linhes-scripts/linhes_update.sh
+++ b/abs/core/linhes-scripts/linhes_update.sh
@@ -1,26 +1,27 @@
#!/bin/bash
dsply () {
- if grep -q Updates\ Available /usr/share/mythtv/linhes.xml
+ if grep -q Updates\ Available /usr/share/mythtv/themes/defaultmenu/linhes.xml
then
- killall osd_cat
+ killall -9 osd_cat
echo -e "Updates available!\n Exit and reenter Service Menu\n to perform updates." | osd_cat -p middle -s 5 -f"-adobe-courier-bold-*-*-*-34-*-*-*-*-*" -d 10 -A centre
exit
else
+ killall -9 osd_cat
echo -e "Checking for updates." | osd_cat -p middle -s 5 -f"-adobe-courier-bold-*-*-*-34-*-*-*-*-*" -d 300 -A centre &
fi
}
chck () {
sudo pacman -Sy
- sudo pacman -Qu > /tmp/check_update
- sudo grep Target /tmp/check_update > /tmp/to_be_upgraded
+ sudo pacman -Qu > /tmp/to_be_upgraded
+# sudo grep Target /tmp/check_update > /tmp/to_be_upgraded
if grep -q no\ upgrades\ found /tmp/check_update
then
- killall osd_cat
+ killall -9 osd_cat
echo -e "No updates available\n at this time." | osd_cat -p middle -s 5 -f"-adobe-courier-bold-*-*-*-34-*-*-*-*-*" -d 5 -A centre
else
- mv /usr/share/mythtv/linhes.xml /tmp/linhes.xml.tmp
- sed -e '/\#Check/,/\#Check/d' < /tmp/linhes.xml.tmp > /usr/share/mythtv/linhes.xml
- mv /usr/share/mythtv/linhes.xml /tmp
+ mv /usr/share/mythtv/themes/defaultmenu/linhes.xml /tmp/linhes.xml.tmp
+ sed -e '/\#Check/,/\#Check/d' < /tmp/linhes.xml.tmp > /usr/share/mythtv/themes/defaultmenu/linhes.xml
+ mv /usr/share/mythtv/themes/defaultmenu/linhes.xml /tmp
grep -v -e /mythmenu /tmp/linhes.xml > /tmp/linhes.xml.tmp
echo "<!--#UpdatesAvailable-->" >> /tmp/linhes.xml.tmp
echo " <button>" >> /tmp/linhes.xml.tmp
@@ -30,7 +31,7 @@ chck () {
echo " </button>" >> /tmp/linhes.xml.tmp
echo "<!--#UpdatesAvailable-->" >> /tmp/linhes.xml.tmp
echo "</mythmenu>" >> /tmp/linhes.xml.tmp
- mv /tmp/linhes.xml.tmp /usr/share/mythtv/linhes.xml
+ mv /tmp/linhes.xml.tmp /usr/share/mythtv/themes/defaultmenu/linhes.xml
dsply
fi
}
diff --git a/abs/core/linhes-scripts/linhes_update2.sh b/abs/core/linhes-scripts/linhes_update2.sh
index 20f32b9..80945eb 100644
--- a/abs/core/linhes-scripts/linhes_update2.sh
+++ b/abs/core/linhes-scripts/linhes_update2.sh
@@ -1,14 +1,16 @@
#!/bin/bash
+killall -9 osd_cat
echo -e "Performing updates." | osd_cat -p middle -s 5 -f"-adobe-courier-bold-*-*-*-34-*-*-*-*-*" -d 300000 -A centre &
-sudo pacman -Syuf --noconfirm && sudo killall -9 osd_cat
-if grep -q Check\ for\ updates /usr/share/mythtv/linhes.xml
+sudo pacman -Suf --noconfirm && sudo killall -9 osd_cat
+if grep -q Check\ for\ updates /usr/share/mythtv/themes/defaultmenu/linhes.xml
then
rm -fr /tmp/to_be_upgraded
+killall -9 osd_cat
echo -e "Update complete." | osd_cat -p middle -s 5 -f"-adobe-courier-bold-*-*-*-34-*-*-*-*-*" -d 5 -A centre
else
-mv /usr/share/mythtv/linhes.xml /tmp/linhes.xml.tmp
-sed -e '/\#UpdatesAv/,/\#UpdatesAv/d' < /tmp/linhes.xml.tmp > /usr/share/mythtv/linhes.xml
-mv /usr/share/mythtv/linhes.xml /tmp
+mv /usr/share/mythtv/themes/defaultmenu/linhes.xml /tmp/linhes.xml.tmp
+sed -e '/\#UpdatesAv/,/\#UpdatesAv/d' < /tmp/linhes.xml.tmp > /usr/share/mythtv/themes/defaultmenu/linhes.xml
+mv /usr/share/mythtv/themes/defaultmenu/linhes.xml /tmp
grep -v -e /mythmenu /tmp/linhes.xml > /tmp/linhes.xml.tmp
echo "<!--#Check for updates-->" >> /tmp/linhes.xml.tmp
echo " <button>" >> /tmp/linhes.xml.tmp
@@ -19,7 +21,8 @@ echo " </button>" >> /tmp/linhes.xml.tmp
echo "<!--#Check for updates-->" >> /tmp/linhes.xml.tmp
echo "" >> /tmp/linhes.xml.tmp
echo "</mythmenu>" >> /tmp/linhes.xml.tmp
-mv /tmp/linhes.xml.tmp /usr/share/mythtv/linhes.xml
+mv /tmp/linhes.xml.tmp /usr/share/mythtv/themes/defaultmenu/linhes.xml
rm -fr /tmp/to_be_upgraded
+killall -9 osd_cat
echo -e "Update complete." | osd_cat -p middle -s 5 -f"-adobe-courier-bold-*-*-*-34-*-*-*-*-*" -d 5 -A centre
fi
diff --git a/abs/core/linhes-scripts/linhes_update3.sh b/abs/core/linhes-scripts/linhes_update3.sh
index 56e8612..5dc0b4d 100644
--- a/abs/core/linhes-scripts/linhes_update3.sh
+++ b/abs/core/linhes-scripts/linhes_update3.sh
@@ -8,3 +8,10 @@ if [ $COUNT -lt 20 ]
else
cat /tmp/to_be_upgraded2 | osd_cat -p top -f"-adobe-courier-bold-*-*-*-34-*-*-*-*-*" -d 1 -A centre -l 20 -w
fi
+if grep kernel26 /tmp/to_be_upgraded2
+then
+ killall -9 osd_cat
+ echo -e "Please note:\The kernel will be upgraded.\nThis will require a reboot.\nPlease do so when no jobs are running." | osd_cat -p middle -s 5 -f"-adobe-courier-bould-*-*-*-34-*-*-*-*-*" -d 10 -A centre
+else
+ exit
+fi
diff --git a/abs/core/linhes-scripts/myth2fuze b/abs/core/linhes-scripts/myth2fuze
new file mode 100755
index 0000000..9e8fc3c
--- /dev/null
+++ b/abs/core/linhes-scripts/myth2fuze
@@ -0,0 +1,318 @@
+#!/bin/bash
+# convert recording to avi compatable with San Disk Sansa Fuze
+# Based on and/or inspired by myth2xvid, the video4fuze project:
+# http://code.google.com/p/video4fuze
+# and the fuzemux project:
+# http://code.google.com/p/fuzemux
+#
+# version 0.2
+#
+# usage:
+# first parameter must be %DIR%/%FILE% of the recording
+# second parameter must be the %TITLE% for the output filename
+# third parameter must be the %SUBTITLE% for the output filename
+# fourth parameter must be %CHANID% if you set USECUTLIST=Y
+# fifth parameter must be %STARTTIME% for USECUTLIST=Y and output filename
+# sixth parameter must be %JOBID% for the User Job status to be updated
+# in MythTV
+# In the mythtv setup screen invoke this script like this:
+# MYTHTV User Job Command:
+# /usr/LH/bin/myth2fuze "%DIR%/%FILE%" "%TITLE%" "%SUBTITLE%" "%CHANID%" "%STARTTIME%" "%JOBID%"
+
+# options:
+USECUTLIST=Y # Y or N
+
+# check prerequesites
+for APP in {fuzemux,mencoder,ffmpeg,mythcommflag,mythtranscode,mysql}; do
+ /usr/bin/which ${APP} &>/dev/null
+ ERROR=$?
+ if [ $ERROR -ne 0 ]; then
+ echo "${APP} not found in your PATH! Aborting! ERROR: ${ERROR}" >> ${LOGFILE}
+ update_status 304
+ update_comment "${APP} not found in your PATH! Aborting! Exit status: ${ERROR}"
+ exit 1
+ fi
+done
+
+# where the converted video is stored
+OUT_DIR=/myth/video/fuze
+
+# Ensure output directory exists
+if [ ! -d ${OUT_DIR} ] ; then
+ mkdir -p -m777 ${OUT_DIR}
+fi
+
+# database settings
+BACKEND_HOSTNAME=${BACKEND_HOSTNAME:-"localhost"}
+DBUSERNAME=${DBUSERNAME:-"mythtv"}
+DBPASSWORD=${DBPASSWORD:-"mythtv"}
+SQLCMD="mysql -u ${DBUSERNAME} --password=${DBPASSWORD} -h ${BACKEND_HOSTNAME} mythconverg -e"
+
+# create temp filename so multiple instances won't conflict
+TMPNAME=toFUZE-$$
+TMPDIR=/myth/tmp
+TMPFILE=${TMPDIR}/${TMPNAME}.avi
+TMPCUTFILE=${TMPDIR}/${TMPNAME}.mpg
+MENINPUTFILE=${1}
+TWOPASSFILE=/tmp/${TMPNAME}-2pass.log
+STATUSFILE=/tmp/${TMPNAME}-status.log
+MENCODER_RETURN_CODE=/tmp/${TMPNAME}-mencoder_return_code
+MENCODER_RETURN_CODE_2=/tmp/${TMPNAME}-mencoder_return_code_2
+
+# Ensure temp directory exists
+if [ ! -d ${TMPDIR} ] ; then
+ mkdir -p -m777 ${TMPDIR}
+fi
+
+#------FUNCTIONS---------------
+update_comment()
+# Arg_1 = COMMENT
+{
+if [ ${NO_JOBID} = 0 ]; then
+ `${SQLCMD} "update jobqueue set comment=\"${1}\" where id=\"${JOBID}\";"`
+fi
+}
+
+update_status()
+# Arg_1 = status code
+{
+if [ ${NO_JOBID} = 0 ]; then
+ `${SQLCMD} "update jobqueue set status=\"${1}\" where id=\"${JOBID}\";"`
+fi
+}
+
+check_background_progress()
+# check mencoder progress in background
+# Arg_1 = PROGRESS CALCULATION
+{
+while [ `tail -1 ${STATUSFILE} | grep -cE "^Audio stream:|^Video stream:"` = 0 ]
+do
+ sleep 10
+ check_myth_jobcmds
+ current_status=`tail -1 ${STATUSFILE} | grep "([ 0-9]\{1,\}%)"`
+ prog_percent=`echo ${current_status} | sed 's_.*(\([ 0-9][ 0-9]\)%).*_\1_'`
+ current_FPS=`echo ${current_status} | sed 's_.*\([ 0-9][ 0-9].[ 0-9][ 0-9]\)fps.*_\1_'`
+ if [ -n ${prog_percent} ]; then
+ prog_percent=`expr ${prog_percent} / ${1}`
+ echo "${prog_percent}% Completed @ ${current_FPS} fps"
+ update_comment "${prog_percent}% Completed @ ${current_FPS} fps"
+ fi
+ sleep 10
+done
+}
+
+check_myth_jobcmds()
+# check the myth database for stop pause or resume commands
+{
+if [ ${NO_JOBID} = 0 ]; then
+ CURRENT_CMD=`${SQLCMD} "select cmds from jobqueue where id=\"${JOBID}\";" | sed '/[0-9]/!d'`
+ case ${CURRENT_CMD} in
+ # JOB_RUN
+ 0) ;;
+ # JOB_PAUSE
+ 1) update_status 6
+ kill -s STOP ${mencoder_pid} ;;
+ # JOB_RESUME
+ 2) update_status 4
+ `${SQLCMD} "update jobqueue set cmds=\"0\" where id=\"${JOBID}\";"`
+ kill -s CONT ${mencoder_pid} ;;
+ # JOB_STOP
+ 4) update_status 5
+ `${SQLCMD} "update jobqueue set cmds=\"0\" where id=\"${JOBID}\";"`
+ kill -9 ${mencoder_pid} ${command_pid}
+ clean_up_files
+ echo "Encode Cancelled" >> ${LOGFILE}
+ update_status 320
+ exit ;;
+ esac
+fi
+}
+
+get_mencoder_pid()
+{
+process_name=""
+i1=1
+while [ "$process_name" != "found" ]; do
+ if [ "`ps ${mencoder_pid} | grep mencoder | sed 's_.*\(mencoder\).*_\1_'`" = "mencoder" ]; then
+ process_name="found"
+ else
+ mencoder_pid=`expr ${mencoder_pid} + 1`
+ fi
+ i1=`expr $i1 + 1`
+ if [ $i1 -gt 20 ]; then
+ break
+ fi
+done
+}
+
+run_fuzemux()
+# Remux avi to fuze compatable avi
+{
+/usr/bin/nice -n19 /usr/bin/fuzemux ${TMPFILE} ${OUTPUTFILE} >> ${LOGFILE} || return 1
+}
+
+create_thumbnail()
+# Create a thumbnail image for the fuze
+{
+/usr/bin/nice -n19 /usr/bin/ffmpeg -y -v -1 -i ${OUTPUTFILE} -t 1 -ss 3 \
+-s 224x176 -f image2 ${OUTPUTFILE%.*}.thm >> ${LOGFILE}
+}
+
+clean_up_files()
+# clean up left over files
+{
+unlink ${TMPFILE} 2> /dev/null
+unlink ${TMPCUTFILE} 2> /dev/null
+unlink ${TMPCUTFILE}.map 2> /dev/null
+unlink ${TWOPASSFILE} 2> /dev/null
+unlink ${TWOPASSFILE}.tmp 2> /dev/null
+unlink ${STATUSFILE} 2> /dev/null
+unlink ${MENCODER_RETURN_CODE} 2> /dev/null
+unlink ${MENCODER_RETURN_CODE_2} 2> /dev/null
+}
+
+#-------MAIN SCRIPT------------
+
+# check if %JOBID% is passed from command line
+JOBID=${6}
+if [ -z ${JOBID} ]; then
+ NO_JOBID=1
+else
+ NO_JOBID=0
+fi
+
+# log file location
+LOGFILE=/var/log/mythtv/myth2fuze.log
+CDate="`date`"
+echo "" >> ${LOGFILE}
+echo ${CDate} >> ${LOGFILE}
+echo "File to encode: ${MENINPUTFILE} Name: ${2} - ${3}" >> ${LOGFILE}
+
+# start timer
+beforetime="$(date +%s)"
+
+check_myth_jobcmds
+
+# check if using cutlist
+if [ ${USECUTLIST} = Y ]; then
+ MYTHCOMMFRAMES=$( mythcommflag --getcutlist -f ${MENINPUTFILE} | grep 'Cutlist:' | cut -d \ -f 2 )
+ if [ -n "$MYTHCOMMFRAMES" ]; then
+ echo "Extracting Cutlist..." >> ${LOGFILE}
+ update_comment "Extracting Cutlist"
+ /usr/bin/nice -n19 /usr/bin/mythtranscode --chanid ${4} --starttime ${5} --outfile ${TMPCUTFILE} --mpeg2 --honorcutlist
+ MENINPUTFILE=${TMPCUTFILE}
+ fi
+fi
+
+# run mencoder in background to do 1st pass conversion
+echo "Encoding 1st Pass for the Fuze..." >> ${LOGFILE}
+( /usr/bin/nice -n19 /usr/bin/mencoder ${MENINPUTFILE} -passlogfile \
+${TWOPASSFILE} -ffourcc DX50 -ofps 20 \
+-vf pp=li,expand=:::::224/176,scale=224:176,harddup -ovc lavc \
+-lavcopts vcodec=mpeg4:vbitrate=683:vmax_b_frames=0:keyint=15:turbo:vpass=1 \
+-nosound -o /dev/null > ${STATUSFILE} 2>&1 ; echo $? > \
+${MENCODER_RETURN_CODE} ) &
+mencoder_pid=$!
+command_pid=${mencoder_pid}
+get_mencoder_pid
+
+check_background_progress "2"
+
+if [ `cat ${MENCODER_RETURN_CODE}` -ne 0 ]; then
+ echo "Mencoder pass #1 exited with error ${MENCODER_RETURN_CODE}. Encoding failed!"
+ update_status 304
+ update_comment "ERROR: Mencoder pass #1 exited with error ${MENCODER_RETURN_CODE}"
+ clean_up_files
+ exit 1
+fi
+
+# run mencoder in background to do 2nd pass conversion
+echo "Encoding 2nd Pass for the Fuze..." >> ${LOGFILE}
+( /usr/bin/nice -n19 /usr/bin/mencoder ${MENINPUTFILE} -passlogfile \
+${TWOPASSFILE} -ffourcc DX50 -ofps 20 \
+-vf pp=li,expand=:::::224/176,scale=224:176,harddup -ovc lavc \
+-lavcopts vcodec=mpeg4:vbitrate=683:vmax_b_frames=0:keyint=15:vpass=2 \
+-srate 44100 -af resample=44100:0:1,format=s16le -oac mp3lame \
+-lameopts cbr:br=128 -o ${TMPFILE} > ${STATUSFILE} 2>&1 ; echo $? \
+> ${MENCODER_RETURN_CODE_2} ) &
+mencoder_pid=$!
+command_pid=${mencoder_pid}
+get_mencoder_pid
+
+check_background_progress "2 + 50"
+
+if [ `cat ${MENCODER_RETURN_CODE_2}` -ne 0 ]; then
+ echo "Mencoder pass #1 exited with error ${MENCODER_RETURN_CODE}. Encoding failed!"
+ update_status 304
+ update_comment "ERROR: Mencoder pass #1 exited with error ${MENCODER_RETURN_CODE_2}"
+ clean_up_files
+ exit 1
+fi
+
+# make output filename unique, remove punctuation and "special" characters,
+# replace spaces with underscores and force lowercase names
+OAD=$( echo ${5} | cut -b 1-8 )
+FILENAME=$( echo "${2} ${OAD} ${3}" | tr -d '[:punct:]' \
+ | tr -s '[:blank:]' '[_]' | tr '[:upper:]' '[:lower:]' )_fuze.avi
+
+OUTPUTFILE=${OUT_DIR}/${FILENAME}
+ERROR=$?
+
+if [ ${ERROR} -ne 0 ]; then
+ echo "Setting output file name exited with error ${ERROR}" >> ${LOGFILE}
+ update_status 304
+ update_comment "ERROR: Setting output file name exited with error ${ERROR} Job failed!"
+ clean_up_files
+ exit 1
+fi
+
+run_fuzemux
+ERROR=$?
+
+if [ ${ERROR} -ne 0 ]; then
+ echo "Fuzemux exited with error ${ERROR}" >> ${LOGFILE}
+ update_status 304
+ update_comment "ERROR: Fuzemux exited with error ${ERROR} Job Failed!"
+ clean_up_files
+ exit 1
+fi
+
+# ensure mythtv owns the final avi
+chown mythtv ${OUTPUTFILE}
+ERROR=$?
+
+if [ ${ERROR} -ne 0 ]; then
+ echo "Changing ownership of avi to mythtv exited with error ${ERROR}"
+ update_status 304
+ update_comment "ERROR: Changing ownership of avi to mythtv exited with error ${ERROR} Job failed!"
+ clean_up_files
+ exit 1
+fi
+
+create_thumbnail
+
+# ensure mythtv owns the thumbnail
+chown mythtv ${OUTPUTFILE%.*}.thm
+ERROR=$?
+
+if [ ${ERROR} -ne 0 ]; then
+ echo "Changing ownership of thumbnail to mythtv exited with error ${ERROR}"
+ update_status 304
+ update_comment "ERROR: Changing ownership of thumbnail to mythtv exited with error ${ERROR} Job failed!"
+ clean_up_files
+ exit 1
+fi
+
+# stop timer
+aftertime="$(date +%s)"
+seconds="$(expr $aftertime - $beforetime)"
+ echo "File Encoded Successfully: ${OUTPUTFILE}" >> ${LOGFILE}
+ hours=$((seconds / 3600))
+ seconds=$((seconds % 3600))
+ minutes=$((seconds / 60))
+ seconds=$((seconds % 60))
+ echo "Encoding took $hours hour(s) $minutes minute(s) $seconds second(s) @ $current_FPS fps." >> ${LOGFILE}
+ update_status 272
+ update_comment "Encode Successful. Encoding Time: $hours hour(s) $minutes minute(s) $seconds second(s)"
+
+clean_up_files
diff --git a/abs/core/linhes-scripts/mythwelcome-config.py b/abs/core/linhes-scripts/mythwelcome-config.py
new file mode 100755
index 0000000..c7bf10b
--- /dev/null
+++ b/abs/core/linhes-scripts/mythwelcome-config.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python
+
+# This script will configure the myth db to allow MythWelcome to wake and shutdown the system.
+
+from socket import gethostname
+from MythTV import MythDB
+mythdb = MythDB()
+localhostname = gethostname()
+
+# mythwelcome --setup
+mythdb.settings[localhostname].MythShutdownNvramCmd = u'sudo sh -c \"/usr/LH/bin/mythwelcome-set-alarm.sh $time\"'
+mythdb.settings[localhostname].MythShutdownWakeupTimeFmt = u'time_t'
+mythdb.settings[localhostname].MythShutdownNvramRestartCmd = u''
+mythdb.settings[localhostname].MythShutdownReboot = u'sudo /sbin/reboot'
+mythdb.settings[localhostname].MythShutdownPowerOff = u'sudo /sbin/poweroff'
+mythdb.settings[localhostname].MythShutdownXTermCmd = u'xterm'
+mythdb.settings[localhostname].MythWelcomeStartFECmd = u'/usr/LH/bin/mythfrontend-start'
+
+
+# mythtv-setup Shutdown/Wakeup options
+if mythdb.settings[localhostname].idleTimeoutSecs == u'0':
+ mythdb.settings[localhostname].idleTimeoutSecs = u'40'
+
+mythdb.settings.NULL.WakeupTimeFormat = u'yyyy-MM-ddThh:mm:ss'
+mythdb.settings.NULL.SetWakeuptimeCommand = u'/usr/bin/mythshutdown --setwakeup $time'
+mythdb.settings.NULL.ServerHaltCommand = u'/usr/bin/mythshutdown --shutdown'
+mythdb.settings.NULL.preSDWUCheckCommand = u'/usr/bin/mythshutdown --check'
diff --git a/abs/core/linhes-scripts/mythwelcome-set-alarm.sh b/abs/core/linhes-scripts/mythwelcome-set-alarm.sh
index 6dbd39e..990adf7 100755
--- a/abs/core/linhes-scripts/mythwelcome-set-alarm.sh
+++ b/abs/core/linhes-scripts/mythwelcome-set-alarm.sh
@@ -13,7 +13,7 @@
# Configure mythtv-setup Shutdown/Wakeup Options page:
# Idletimeout (secs): any value greater that 0
-# Wakeup time format: yyyy-MM-dd:hh:mm
+# Wakeup time format: yyyy-MM-ddThh:mm:ss
# Set wakeup time command: /usr/bin/mythshutdown --setwakeup $time
# Server Halt command: /usr/bin/mythshutdown --shutdown
# Pre shutdown check command: /usr/bin/mythshutdown --check
diff --git a/abs/core/linhes-scripts/qip7100-cc.sh b/abs/core/linhes-scripts/qip7100-cc.sh
new file mode 100755
index 0000000..029e25c
--- /dev/null
+++ b/abs/core/linhes-scripts/qip7100-cc.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+#Script to control DCT 700/2524 on emitter #1 of CommandIR
+irsend set_transmitters 2
+sleep .5
+#REMOTE_NAME=DCT2524
+REMOTE_NAME=Motorola_QIP6200-2
+cmd="$1"
+
+case $cmd in
+ [0-9]*)
+ for digit in $(echo $1 | sed -e 's/./& /g'); do
+ irsend -d /dev/lircd SEND_ONCE $REMOTE_NAME $digit
+ sleep .4
+ # If things work OK with sleep 1, try this for faster channel changes:
+ sleep 0.3
+ done
+ irsend -d /dev/lircd SEND_ONCE $REMOTE_NAME ok
+sleep .3
+ irsend -d /dev/lircd SEND_ONCE $REMOTE_NAME exit
+ ;;
+
+ *)
+ irsend SEND_ONCE $REMOTE_NAME $cmd
+ ;;
+esac
diff --git a/abs/core/linhes-scripts/remove_php_mythvideo.sh b/abs/core/linhes-scripts/remove_php_mythvideo.sh
new file mode 100644
index 0000000..d9d53a0
--- /dev/null
+++ b/abs/core/linhes-scripts/remove_php_mythvideo.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+. /etc/systemconfig
+
+if [ $SystemType != Frontend_only ] && [ $SystemType != Slave_backend ] ; then
+
+mysql mythconverg <<EOF
+delete from videotypes where extension='php';
+insert into videotypes(extension,f_ignore) values('php','1');
+EOF
+
+else
+ exit 0
+fi
diff --git a/abs/core/linhes-scripts/removecommercials.sh b/abs/core/linhes-scripts/removecommercials.sh
new file mode 100755
index 0000000..70e2e52
--- /dev/null
+++ b/abs/core/linhes-scripts/removecommercials.sh
@@ -0,0 +1,213 @@
+#!/bin/sh
+# remove commercials from recordings using the user generated cutlist or
+# optionally using the mythcommflag generated cutlist.
+# version 0.2 3/24/2010
+
+# usage:
+# first parameter must be %DIR% of the recording
+# second parameter must be %FILE% of the recording
+# third parameter must be %CHANID%
+# fourth parameter must be %STARTTIME%
+# fifth parameter must be %JOBID% for the User Job status to be updated in MythTV
+# in the mythtv setup screen invoke this script like this:
+# MYTHTV User Job Command:
+# /usr/LH/bin/removecommercials.sh "%DIR%" "%FILE%" "%CHANID%" "%STARTTIME%" "%JOBID%"
+
+#-------OPTIONS----------------
+# If no cutlist is found USE_MYTHCOMMFLAG_CUTLIST=YES will use mythcommflag
+# to generate a cutlist.
+# WARNING: Using this option could result in part of the recording being cut if
+# mythcommflag incorrectly flagged the commercial.
+USE_MYTHCOMMFLAG_CUTLIST=NO
+
+# Auguments passed from command line
+VIDEODIR=$1
+FILENAME=$2
+CHANID=$3
+STARTTIME=$4
+JOBID=$5
+
+# database settings
+BACKEND_HOSTNAME=${BACKEND_HOSTNAME:-"localhost"}
+DBUSERNAME=${DBUSERNAME:-"mythtv"}
+DBPASSWORD=${DBPASSWORD:-"mythtv"}
+SQLCMD="mysql -u $DBUSERNAME --password=$DBPASSWORD -h $BACKEND_HOSTNAME mythconverg -e"
+
+LOG="/var/log/mythtv/removecommercials.log"
+
+#------FUNCTIONS---------------
+update_comment()
+# Arg_1 = COMMENT
+{
+if [ $NO_JOBID = 0 ]; then
+ `$SQLCMD "update jobqueue set comment=\"$1\" where id=\"$JOBID\";"`
+fi
+}
+
+update_status()
+# Arg_1 = status code
+{
+if [ $NO_JOBID = 0 ]; then
+ `$SQLCMD "update jobqueue set status=\"$1\" where id=\"$JOBID\";"`
+fi
+}
+
+check_myth_jobcmds()
+# check the myth database for stop pause or resume commands
+{
+if [ $NO_JOBID = 0 ]; then
+ CURRENT_CMD=`$SQLCMD "select cmds from jobqueue where id=\"$JOBID\";" | sed '/[0-9]/!d'`
+ case "$CURRENT_CMD" in
+ # JOB_RUN
+ 0) ;;
+ # JOB_PAUSE
+ 1) update_status 6
+ kill -s STOP $TPID ;;
+ # JOB_RESUME
+ 2) update_status 4
+ `$SQLCMD "update jobqueue set cmds=\"0\" where id=\"$JOBID\";"`
+ kill -s CONT $TPID ;;
+ # JOB_STOP
+ 4) update_status 5
+ `$SQLCMD "update jobqueue set cmds=\"0\" where id=\"$JOBID\";"`
+ kill -9 $TPID
+ clean_up_files
+ echo "Cancelled"
+ update_status 320
+ exit ;;
+ esac
+fi
+}
+
+check_background_progress()
+#check progress in background
+{
+while [ `tail -1 $STATUSFILE | grep -c "Done"` = 0 ]
+do
+ sleep 5
+ check_myth_jobcmds
+ current_status=`tail -1 $STATUSFILE`
+ if [ `expr match "$current_status" '.*\complete'` -ne 0 ]; then
+ prog_percent=`echo "$current_status" | awk '{print $3}'`
+ if [ -n "$prog_percent" ]; then
+ echo "Removing Commercials - $prog_percent Completed"
+ update_comment "Removing Commercials - $prog_percent Completed"
+ fi
+ fi
+done
+}
+
+get_pid()
+{
+process_name=""
+i1=1
+while [ "$process_name" != "found" ]; do
+ if [ "`ps $TPID | grep mythtranscode | sed 's_.*\(mythtranscode\).*_\1_'`" = "mythtranscode" ]; then
+ process_name="found"
+ else
+ TPID=`expr $TPID + 1`
+ fi
+ i1=`expr $i1 + 1`
+ if [ $i1 -gt 20 ]; then
+ break
+ fi
+done
+}
+
+clean_up_files()
+# clean up left over files
+{
+unlink $TMPFILE 2> /dev/null
+unlink $TMPFILE.map 2> /dev/null
+unlink $STATUSFILE 2> /dev/null
+unlink $VIDEODIR/$FILENAME.tmp 2> /dev/null
+}
+
+#-------MAIN SCRIPT------------
+# check if %JOBID% is passed from command line
+JOBID=$5
+if [ -z "$JOBID" ]; then
+ NO_JOBID=1
+else
+ NO_JOBID=0
+fi
+# check if file is a .mpg
+if [ `expr match "$FILENAME" '.*\.mpg'` -ne 0 ]; then
+ MPEG="--mpeg2"
+else
+ MPEG=""
+fi
+
+# create temp filename so multiple instances won't conflict
+TMPNAME=rmvCOMMS-$$
+TMPFILE=$VIDEODIR/$FILENAME-$$
+STATUSFILE=/myth/tmp/$TMPNAME-status.log
+
+touch $STATUSFILE
+
+update_status 4
+
+check_myth_jobcmds
+
+# check for cutlist
+MYTHCOMMFRAMES=`mythcommflag --getcutlist -f $VIDEODIR/$FILENAME | grep 'Cutlist:' | cut -d \ -f 2`
+
+if [ $USE_MYTHCOMMFLAG_CUTLIST=YES ] && [ -z "$MYTHCOMMFRAMES" ]; then
+ echo "Generating cutlist..."
+ update_comment "Generating cutlist..."
+ /usr/bin/nice -n19 /usr/bin/mythcommflag --gencutlist -f $VIDEODIR/$FILENAME
+ MYTHCOMMFRAMES=`mythcommflag --getcutlist -f $VIDEODIR/$FILENAME | grep 'Cutlist:' | cut -d \ -f 2`
+fi
+
+if [ -n "$MYTHCOMMFRAMES" ]; then
+ echo "Removing Commercials..."
+ update_comment "Removing Commercials..."
+ ( /usr/bin/nice -n19 /usr/bin/mythtranscode -c $CHANID -s $STARTTIME -o $TMPFILE $MPEG --honorcutlist --showprogress > $STATUSFILE 2>&1 ; echo "Done" >> $STATUSFILE ) &
+ TPID=$!
+ get_pid
+ check_background_progress
+ ERROR=$?
+ if [ $ERROR -ne 0 ]; then
+ echo "Transcoding failed for ${FILENAME} with error $ERROR"
+ exit $ERROR
+ fi
+
+ check_myth_jobcmds
+ # move temp file to output location
+ echo "Moving file..."
+ update_comment "Moving file..."
+ if [ `$SQLCMD "select data from settings where value='SaveTranscoding';" | sed '/[0-9]/!d'` = 1 ]; then
+ echo "DB is set to save transcoding"
+ mv $VIDEODIR/$FILENAME $VIDEODIR/$FILENAME.old
+ fi
+ mv $TMPFILE $VIDEODIR/$FILENAME
+
+ # file has changed, rebuild index
+ echo "Rebuilding index..."
+ update_comment "Rebuilding index..."
+ mythcommflag -c $CHANID -s $STARTTIME --rebuild
+ ERROR=$?
+ if [ $ERROR -ne 0 ]; then
+ echo "Rebuilding seek list failed for ${FILENAME} with error $ERROR"
+ exit $ERROR
+ fi
+
+ # remove old cutlist
+ echo "Removing old cutlist..."
+ update_comment "Removing old cutlist..."
+ mythcommflag -c $CHANID -s $STARTTIME --clearcutlist
+ ERROR=$?
+ if [ $ERROR -eq 0 ]; then
+ # Fix the database entry for the file
+ `$SQLCMD UPDATE recorded SET cutlist = 0, filesize = $(ls -l $VIDEODIR/$FILENAME | awk '{print $5}') WHERE basename = '$FILENAME';` > /dev/null
+ else
+ echo "Clearing cutlist failed for ${FILENAME} with error $ERROR"
+ exit $ERROR
+ fi
+ clean_up_files
+ echo "Commercials Removed"
+ update_status 272
+ update_comment "Sucessfully Completed."
+else
+ echo "No cutlist found."
+fi
diff --git a/abs/core/linhes-scripts/screenshooter.sh b/abs/core/linhes-scripts/screenshooter.sh
index 94ea6fd..3bacac1 100755
--- a/abs/core/linhes-scripts/screenshooter.sh
+++ b/abs/core/linhes-scripts/screenshooter.sh
@@ -135,7 +135,7 @@ if [ "$EXTENSION_CHECK" == "1" ]; then
# if [ "$VERBOSE" == "1" ]; then
# echo "Importing $VIDEO_FILENAME in to database."
# fi
- # mysql -u $DBUSERNAME --password=$DBPASSWORD -h $BACKEND_HOSTNAME mythconverg -sNBe "insert into videometadata (intid, title, director, plot, rating, inetref, year, userrating, length, showlevel, filename, coverfile, childid, browse, playcommand, category) values (' ', '$VIDEO_FILENAME', 'Unknown', 'Unknown', 'NR', '00000000', 1895, 0.0, 0, 1, '$VIDEO_PATHNAME', 'No Cover', -1, 1, ' ', 0);"
+ # mysql -u $DBUSERNAME --password=$DBPASSWORD -h $BACKEND_HOSTNAME mythconverg -sNBe "insert into videometadata (intid, title, director, plot, rating, inetref, year, userrating, length, showlevel, filename, coverfile, childid, browse, playcommand, category) values (' ', '$VIDEO_FILENAME', 'Unknown', 'Unknown', 'NR', '00000000', 1895, 0.0, 0, 1, '$VIDEO_PATHNAME', '', -1, 1, ' ', 0);"
fi
fi
fi
@@ -145,7 +145,7 @@ if [ "$CLOBBER" -eq 0 ]; then
SQL_CMD="select coverfile from videometadata where filename=\"$VIDEO_PATHNAME\";"
CURRENT_COVERFILE=`mysql -u $DBUSERNAME --password=$DBPASSWORD -h $BACKEND_HOSTNAME mythconverg -B -e "$SQL_CMD" | tail -1`
- if [[ "$CURRENT_COVERFILE" != "" ]] && [[ "$CURRENT_COVERFILE" != "No Cover" ]]; then
+ if [[ "$CURRENT_COVERFILE" != "" ]] && [[ "$CURRENT_COVERFILE" != "" ]]; then
# there's already a cover file for this video
if [ "$VERBOSE" == "1" ]; then
echo "$VIDEO_FILENAME has cover file, skipping."
diff --git a/abs/core/linhes-scripts/shootscreens-mythtv.sh b/abs/core/linhes-scripts/shootscreens-mythtv.sh
index db01147..111b980 100755
--- a/abs/core/linhes-scripts/shootscreens-mythtv.sh
+++ b/abs/core/linhes-scripts/shootscreens-mythtv.sh
@@ -1,11 +1,19 @@
#! /bin/bash
-# available sizes: 34, 25, 24, 20, 18, 17, 14, 12, 11, 10
-export FONT="-adobe-helvetica-bold-*-*-*-34-*-*-*-*-*-*-*"
+
+. /etc/osd_cat.cfg || {
+ color=yellow
+ outline=2
+ outlinecolour=black
+ shadow=0
+ shadowcolour=black
+ font="-adobe-helvetica-bold-*-*-*-34-*-*-*-*-*-*-*"
+}
+
echo "This could take several minutes," > /tmp/screens
echo "depending on your hardware and the" >> /tmp/screens
echo "number and type of videos you have." >> /tmp/screens
echo "It will only work on videos scanned" >> /tmp/screens
echo "with Video Manager." >> /tmp/screens
-cat /tmp/screens | osd_cat --font=$FONT --shadow=3 --pos=middle --align=centre --offset=200 --color=yellow --delay=0 &
+cat /tmp/screens | osd_cat --pos=middle --align=center --delay=0 --offset=200 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
shootscreens.sh 1
/bin/rm -f /tmp/screens \ No newline at end of file
diff --git a/abs/core/linhes-scripts/shootscreens.sh b/abs/core/linhes-scripts/shootscreens.sh
index 7b1260c..bb45252 100755
--- a/abs/core/linhes-scripts/shootscreens.sh
+++ b/abs/core/linhes-scripts/shootscreens.sh
@@ -10,6 +10,14 @@
if [ "$1" == "1" ]; then
OSD=1
+ . /etc/osd_cat.cfg || {
+ color=yellow
+ outline=2
+ outlinecolour=black
+ shadow=0
+ shadowcolour=black
+ font="-adobe-helvetica-bold-*-*-*-34-*-*-*-*-*-*-*"
+ }
else
OSD=0
fi
@@ -23,15 +31,14 @@ fi
increment=$(expr 100 / $vidcount)
for vid in `mysql -u root mythconverg -B -e "select filename from videometadata where coverfile=\"No Cover\";" | grep -v -e "^filename$"`
do
- if [ $OSD == 1 ]; then
- osd_cat --barmode=percentage --percentage=$percentage --pos=middle --align=center --color=white --text="Generating Video Thumbnails..." --font=$FONT --shadow=3 --color=yellow --delay=0 &
- percentage=$(expr $percentage + $increment)
- fi
-
- screenshooter.sh -v $vid
+ if [ $OSD == 1 ]; then
+ osd_cat --barmode=percentage --percentage=$percentage --pos=middle --align=center --text="Generating Video Thumbnails..." --delay=0 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
+ percentage=$(expr $percentage + $increment)
+ fi
+ screenshooter.sh -v $vid
done
if [ $OSD == 1 ]; then
- killall -9 osd_cat
- osd_cat --barmode=percentage --percentage=100 --pos=middle --align=center --color=white --text="Video Thumbnails Generated!" --font=$FONT --shadow=3 --color=yellow --delay=3 &
+ killall -9 osd_cat
+ osd_cat --barmode=percentage --percentage=100 --pos=middle --align=center --text="Video Thumbnails Generated!" --delay=3 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
fi
} \ No newline at end of file
diff --git a/abs/core/linhes-scripts/system-cleanup.sh b/abs/core/linhes-scripts/system-cleanup.sh
new file mode 100755
index 0000000..59a4ebb
--- /dev/null
+++ b/abs/core/linhes-scripts/system-cleanup.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+# This script cleans up some SVN stuff that the build process leaves
+# in /usr/share/mythtv, along with ownership and file permsisions on the
+# themes and the mythstream stuff. There are bunch of files which are
+# left executable for no good reason, although I can think of several
+# potentially bad reasons for it.
+
+find /usr/share/mythtv -name .svn -print0 | xargs -0 rm -rf
+find /usr/share/mythtv -name CVS -print0 | xargs -0 rm -rf
+
+THEMES=/usr/share/mythtv/themes
+
+chown -R root:root $THEMES
+chmod -R +r $THEMES
+find $THEMES -type f -print0 | xargs -0 chmod a-x
+
+
+chown -R mythtv:users /myth
+chown -R root:root /myth/backup/
+chown -R root:root /etc/sv
+
+chown -R http:users /data/srv/httpd/
+
+# None of thes files should be executable.
+for ext in gif png jpg xml htm html php ; do
+ find / -type f -name "*.$ext" -print0 | xargs -0 chmod a-x
+done
+
+# These files should be owned by root and not writable to anybody else
+
+#chown root:root /usr/share/mythtv/*.xml /usr/share/mythtv/*.ttf
+chown root:root /usr/share/mythtv/*.ttf
+
+chown -R root:root \
+ /usr/share/mythtv/i18n \
+ /usr/share/mythtv/mytharchive \
+ /usr/share/mythtv/mythflix \
+ /usr/share/mythtv/mythnews \
+ /usr/share/mythtv/mythvideo \
+ /usr/share/mythtv/mythweather \
+ /usr/LH
+
+
+
+# Report any remaining orphans...
+find / /myth -xdev \( -nouser -o -nogroup \) -ls
diff --git a/abs/core/linhes-scripts/update_schema_021_to_022.sh b/abs/core/linhes-scripts/update_schema_021_to_022.sh
new file mode 100644
index 0000000..4157fb4
--- /dev/null
+++ b/abs/core/linhes-scripts/update_schema_021_to_022.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+mysql mythconverg <<EOF
+update gameplayers set commandline = '/usr/bin/sdlmame -rp /myth/games/xmame/roms %s' where commandline = '/usr/game/mame -rp /myth/games/xmame/roms %s';
+update settings set data = '/myth/video_stuff/coverart' where value = 'VideoArtworkDir';
+update settings set data = '/myth/video_stuff/fanart' where value = 'mythvideo.fanartDir';
+update settings set data = '/myth/video_stuff/screenshots' where value = 'mythvideo.screenshotDir';
+update settings set data = '/myth/video_stuff/banners' where value = 'mythvideo.bannerDir';
+update settings set data = '/myth/video_stuff/trailers' where value = 'mythvideo.TrailersDir';
+update settings set data = '1' where value = 'mythvideo.TrailersRandomEnabled';
+update settings set data = '1' where value = 'mythvideo.EnableAlternatePlayer';
+update settings set data = '/myth/video_stuff/screenshots' where value = 'ScreenShotPath';
+update settings set data = '/myth/games/screenshots' where value = 'mythgame.screenshotdir';
+update settings set data = '/myth/games/fanart' where value = 'mythgame.fanartdir';
+update settings set data = '/myth/games/boxart' where value = 'mythgame.boxartdir';
+update settings set data = '3' where value = 'OverrideExitMenu';
+update settings set data = 'sudo sv start mythbackend' where value = 'BackendStartCommand';
+update settings set data = 'sudo sv stop mythbackend' where value = 'BackendStopCommand';
+update settings set data = '/usr/share/mythtv/mythvideo/scripts/tmdb.pl -M' where value = 'MovieListCommandLine';
+update settings set data = replace(data, 'imdb.pl', 'tmdb.pl');
+EOF
diff --git a/abs/core/linhes-scripts/upgrade_linhes.sh b/abs/core/linhes-scripts/upgrade_linhes.sh
new file mode 100755
index 0000000..91a46e6
--- /dev/null
+++ b/abs/core/linhes-scripts/upgrade_linhes.sh
@@ -0,0 +1,136 @@
+#!/bin/bash
+#Script to facilitate easy upgrade to latest LinHES.
+clear
+if [ "$(id -u)" != "0" ]; then
+ echo "This script must be run as root" 1>&2
+ exit 1
+fi
+function pause(){
+ read -p "$*"
+}
+echo "The script will guide you thru the process of upgrading to the latest LinHES."
+pause 'Press <ENTER> to continue...'
+echo
+echo "Sync'n with the repos..."
+echo
+pacman -Sy &>/dev/null
+pacman -Qu > /tmp/linhes_upgrade
+if [ ! -s /tmp/linhes_upgrade ]
+then
+ echo "No upgrades found. This could mean the repository is busy."
+ echo "Or your system is already up to date."
+ echo "If you have not upgrade, please try again later."
+ echo "Starting the backend."
+ sv start mythbackend &>/dev/null
+ exit 1
+fi
+if grep -E "Master|Stand" /etc/systemconfig &>/dev/null
+ then
+ echo "Stopping the backend."
+ sv stop mythbackend &>/dev/null
+fi
+if pacman -Qs mythvodka &>/dev/null
+ then
+ echo "Removing MythVodka if installed as it is no longer compatible with MythTV."
+ echo
+ pacman -R mythvodka &>/dev/null
+fi
+echo
+echo "Backing up Online Streams listings."
+echo
+cp /usr/share/mythtv/is.xml /usr/share/mythtv/is.xml.021
+echo "Removing mythcontrol and mythphone if installed."
+echo
+if pacman -Qs mythcontrols &>/dev/null
+ then
+ pacman -R mythcontrols &>/dev/null
+fi
+if pacman -Qs mythphone &>/dev/null
+ then
+ pacman -R mythphone &>/dev/null
+fi
+if grep -q kernel26 /tmp/linhes_upgrade
+then
+ echo "Upgrading the kernel."
+ echo
+ if pacman -Qs v4l-dvb &>/dev/null
+ then
+ pacman -Sf --noconfirm kernel26 &>/dev/null && pacman -Sf --noconfirm v4l-dvb
+ else
+ pacman -S kernel26 --noconfirm &>/dev/null
+ fi
+fi
+if grep -q v4l-dvb /tmp/linhes_upgrade
+then
+ pacman -Sf --noconfirm v4l-dvb &>/dev/null
+fi
+echo "Checking for VDPAU packages and upgrading if needed."
+echo
+if pacman -Qs vdpinfo-71xx &>/dev/null
+ then
+ pacman -Rd vdpinfo-71xx &>/dev/null
+fi
+if pacman -Qs vdpinfo-96xx &>/dev/null
+ then
+ pacman -Rd vdpinfo-96xx &>/dev/null
+fi
+if pacman -Qs vdpinfo &>/dev/null
+ then
+ pacman -Rd vdpinfo &>/dev/null && pacman -S --noconfirm nvidia &>/dev/null && pacman -S --noconfirm vdpauinfo &>/dev/null
+fi
+echo "Performing complete system upgrade."
+echo "This may take some time depending on your connection speed."
+echo "Server bandwidth utilization will also have an affect."
+echo "Please be patient."
+echo
+pacman -Suf --noconfirm &>/dev/null
+echo "Restoring Online Streams listings."
+echo
+cp /usr/share/mythtv/is.xml.021 /usr/share/mythtv/is.xml
+if grep -E "Master|Stand" /etc/systemconfig &>/dev/null
+ then
+ echo "Starting the backend. This will automatically update the schema."
+ sv start mythbackend &>/dev/null
+ echo "I'll launch an xterm so you watch output backend log."
+ echo "Once the schema updates are complete, switch back to this xterm."
+ echo -e "\033[1mWhen you see \"Upgrading to MythTV schema version 1254\"\033[0m"
+ echo "You can switch back to this xterm."
+ echo -e "\033[1mNote:After pressing <ENTER>, I'll be asleep for 30 secs...\033[0m"
+ echo -e "\033[1mThis will give the schema time to upgrade.\033[0m"
+ pause 'Press <ENTER> to continue...'
+ xterm -fn *18* -e tail -f /var/log/mythtv/mythbackend.log &
+ #Sleeping for 30 seconds to give the schema time to upgrade....
+ sleep 30
+ read -p "Press <ENTER> to continue once the schema upgrade is complete."
+ echo
+ echo -e "\033[1mNow, the frontend will launch to update the schema for any plugins.\033[0m"
+ echo -e "\033[1mOnce the this is done, please exit the frontend.\033[0m"
+ pause 'Press <ENTER> to continue...'
+ xterm -e mythfrontend
+ echo
+ echo "Performing LinHES specific schema updates."
+ echo
+ /usr/LH/bin/update_schema_021_to_022.sh
+ cat /data/database/dvd_transcode_r6.sql | mysql -u root mythconverg
+ /usr/LH/bin/mythwelcome-config.py
+fi
+echo "All done!"
+echo -e "\033[5mThanks for choosing LinHES!\033[0m"
+if grep -q kernel26 /tmp/linhes_upgrade
+then
+ echo "The kernel was upgraded, we need to reboot."
+ pause "Press <ENTER> to reboot."
+ reboot
+else
+ if grep -q v4l-dvb /tmp/linhes_upgrade
+ then
+ echo "The V4L\DVB modules were upgraded."
+ pause "Press <ENTER> to reboot."
+ reboot
+ else
+ echo "Launching mythfrontend once again!"
+ echo "Enjoy the latest version!"
+ sleep 5
+ mythfrontend
+fi
+fi
diff --git a/abs/core/linhes-scripts/upgrade_to_0.22.sh b/abs/core/linhes-scripts/upgrade_to_0.22.sh
new file mode 100644
index 0000000..8536a05
--- /dev/null
+++ b/abs/core/linhes-scripts/upgrade_to_0.22.sh
@@ -0,0 +1,94 @@
+#!/bin/bash
+#Script to facilitate easy upgrade to MythTV 0.22 in LinHES.
+if [ "$(id -u)" != "0" ]; then
+ echo "This script must be run as root" 1>&2
+ exit 1
+fi
+function pause(){
+ read -p "$*"
+}
+clear
+echo "The script will guide you thru the process of upgrading LinHES to MythTV 0.22."
+pause 'Press <ENTER> to continue...'
+if grep -E "Master|Stand" /etc/systemconfig &>/dev/null
+ then
+ echo "Stopping the backend."
+ sv stop mythbackend &>/dev/null
+fi
+echo "Sync'n with the repos..."
+pacman -Sy &>/dev/null
+echo "Removing MythVodka if installed as it is no longer compatible with MythTV."
+if pacman -Qs mythvodka &>/dev/null
+ then
+ pacman -R mythvodka &>/dev/null
+fi
+echo "Backing up Online Streams listings."
+cp /usr/share/mythtv/is.xml /usr/share/mythtv/is.xml.021
+echo "Removing mythcontrol, mythphone and mythsmolt if installed."
+if pacman -Qs mythcontrols &>/dev/null
+ then
+ pacman -R mythcontrols &>/dev/null
+fi
+if pacman -Qs mythphone &>/dev/null
+ then
+ pacman -R mythphone &>/dev/null
+fi
+if pacman -Qs mythsmolt &>/dev/null
+ then
+ pacman -R mythsmolt &>/dev/null
+fi
+echo "Upgrading the kernel."
+if pacman -Qs v4l-dvb &>/dev/null
+ then
+ pacman -Sf --noconfirm kernel26 &>/dev/null && pacman -Sf --noconfirm v4l-dvb
+ else
+ pacman -S kernel26 --noconfirm &>/dev/null
+fi
+echo "Checking for VDPAU packages and upgrading if needed."
+if pacman -Qs vdpinfo-71xx &>/dev/null
+ then
+ pacman -Rd vdpinfo-71xx &>/dev/null
+fi
+if pacman -Qs vdpinfo-96xx &>/dev/null
+ then
+ pacman -Rd vdpinfo-96xx &>/dev/null
+fi
+if pacman -Qs vdpinfo &>/dev/null
+ then
+ pacman -Rd vdpinfo &>/dev/null && pacman -S --noconfirm nvidia &>/dev/null && pacman -S --noconfirm vdpauinfo &>/dev/null
+fi
+echo "Performing complete system upgrade."
+echo "This may take some time depending on your connection speed."
+echo "Server bandwidth utilization will also have an affect."
+echo "Please be patient."
+pacman -Su --noconfirm &>/dev/null
+echo "Restoring Online Streams listings."
+cp /usr/share/mythtv/is.xml.021 /usr/share/mythtv/is.xml
+clear
+if grep -E "Master|Stand" /etc/systemconfig &>/dev/null
+ then
+ echo "Starting the backend. This will automatically update the schema."
+ sv start mythbackend &>/dev/null
+ echo "I'll launch an xterm so you watch output backend log."
+ echo "Once the schema updates are complete, switch back to this xterm."
+ echo -e "\033[1mWhen you see \"Upgrading to MythTV schema version 1244\"\033[0m"
+ echo "You can switch back to this xterm."
+ echo -e "\033[1mNote:After pressing <ENTER>, I'll be asleep for 30 secs...\033[0m"
+ echo -e "\033[1mThis will give the schema time to upgrade.\033[0m"
+ pause 'Press <ENTER> to continue...'
+ xterm -fn *18* -e tail -f /var/log/mythtv/mythbackend.log &
+ #Sleeping for 30 seconds to give the schema time to upgrade....
+ sleep 30
+ read -p "Press <ENTER> to continue once the schema upgrade is complete."
+ echo -e "\033[1mNow, the frontend will launch to update the schema for any plugins.\033[0m"
+ echo -e "\033[1mOnce the this is done, please exit the frontend.\033[0m"
+ pause 'Press <ENTER> to continue...'
+ xterm -e mythfrontend
+ echo "Performing LinHES specific schema updates."
+ /usr/LH/bin/update_schema_021_to_022.sh
+ cat /data/database/dvd_transcode_r6.sql | mysql -u root mythconverg
+fi
+echo "All done!"
+echo -e "\033[5mThanks for choosing LinHES!\033[0m"
+pause "Press <ENTER> to reboot."
+reboot