2013-07-26 22:38:34 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
2014-01-05 16:27:35 +01:00
|
|
|
# Make sure /sbin is on the path (for service to find sub scripts)
|
|
|
|
PATH="/sbin:$PATH"
|
|
|
|
|
2013-10-02 09:44:08 +02:00
|
|
|
# Script for downloading and installing the latest Hyperion release
|
2013-07-26 22:38:34 +02:00
|
|
|
|
2014-01-04 14:12:33 +01:00
|
|
|
# Find out if we are on Raspbmc
|
2013-11-24 13:37:30 +01:00
|
|
|
IS_XBIAN=`cat /etc/issue | grep XBian | wc -l`
|
2014-01-04 14:12:33 +01:00
|
|
|
IS_RASPBMC=`cat /etc/issue | grep Raspbmc | wc -l`
|
2014-01-05 15:47:47 +01:00
|
|
|
IS_OPENELEC=`cat /etc/issue | grep -m 1 OpenELEC | wc -l`
|
2014-01-04 14:12:33 +01:00
|
|
|
|
|
|
|
# check which init script we should use
|
|
|
|
USE_INITCTL=`which /sbin/initctl | wc -l`
|
2014-01-05 15:47:47 +01:00
|
|
|
USE_SERVICE=`which /usr/sbin/service | wc -l`
|
2013-11-24 13:37:30 +01:00
|
|
|
|
2013-10-02 09:44:08 +02:00
|
|
|
# Make sure that the boblight daemon is no longer running
|
2014-01-05 15:47:47 +01:00
|
|
|
BOBLIGHT_PROCNR=$(pidof boblightd | wc -l)
|
2013-10-02 09:44:08 +02:00
|
|
|
if [ $BOBLIGHT_PROCNR -eq 1 ];
|
|
|
|
then
|
|
|
|
echo 'Found running instance of boblight. Please stop boblight via XBMC menu before installing hyperion'
|
|
|
|
exit
|
|
|
|
fi
|
2013-07-26 22:38:34 +02:00
|
|
|
|
2013-10-02 09:44:08 +02:00
|
|
|
# Stop hyperion daemon if it is running
|
2014-01-04 14:28:33 +01:00
|
|
|
# Start the hyperion daemon
|
|
|
|
if [ $USE_INITCTL -eq 1 ]; then
|
|
|
|
/sbin/initctl stop hyperion
|
2014-01-05 15:47:47 +01:00
|
|
|
elif [ $USE_SERVICE -eq 1 ]; then
|
2014-01-04 14:28:33 +01:00
|
|
|
/usr/sbin/service hyperion stop
|
|
|
|
fi
|
2013-07-26 22:38:34 +02:00
|
|
|
|
2014-01-05 15:47:47 +01:00
|
|
|
# Get and extract the Hyperion binaries and effects
|
|
|
|
echo 'Downloading hyperion'
|
|
|
|
if [ $IS_OPENELEC -eq 1 ]; then
|
|
|
|
# OpenELEC has a readonly file system. Use alternative location
|
|
|
|
curl --get https://raw.github.com/tvdzwan/hyperion/master/deploy/hyperion.tar.gz | tar -C /storage -xz
|
|
|
|
curl --get https://raw.github.com/tvdzwan/hyperion/master/deploy/hyperion.deps.openelec-rpi.tar.gz | tar -C /storage/hyperion/bin -xz
|
2014-01-26 22:55:17 +01:00
|
|
|
|
2014-01-05 15:47:47 +01:00
|
|
|
# modify the default config to have a correct effect path
|
|
|
|
sed -i 's:/opt:/storage:g' /storage/hyperion/config/hyperion.config.json
|
|
|
|
else
|
|
|
|
wget https://raw.github.com/tvdzwan/hyperion/master/deploy/hyperion.tar.gz -O - | tar -C /opt -xz
|
|
|
|
fi
|
2013-11-24 13:37:30 +01:00
|
|
|
|
2013-12-14 06:39:51 +01:00
|
|
|
# create links to the binaries
|
2014-01-05 15:47:47 +01:00
|
|
|
if [ $IS_OPENELEC -ne 1 ]; then
|
|
|
|
ln -fs /opt/hyperion/bin/hyperiond /usr/bin/hyperiond
|
|
|
|
ln -fs /opt/hyperion/bin/hyperion-remote /usr/bin/hyperion-remote
|
2014-01-26 22:55:17 +01:00
|
|
|
ln -fs /opt/hyperion/bin/hyperion-v4l2 /usr/bin/hyperion-v4l2
|
2014-01-05 15:47:47 +01:00
|
|
|
fi
|
2013-07-26 22:38:34 +02:00
|
|
|
|
2013-12-14 06:39:51 +01:00
|
|
|
# create link to the gpio changer (gpio->spi)
|
2014-01-04 14:12:33 +01:00
|
|
|
if [ $IS_RASPBMC -eq 1 ]; then
|
2013-12-14 06:39:51 +01:00
|
|
|
ln -fs /opt/hyperion/bin/gpio2spi /usr/bin/gpio2spi
|
2013-11-24 13:37:30 +01:00
|
|
|
fi
|
2013-07-26 22:38:34 +02:00
|
|
|
|
2013-12-14 06:39:51 +01:00
|
|
|
# Copy a link to the hyperion configuration file to /etc
|
2014-01-05 15:47:47 +01:00
|
|
|
if [ $IS_OPENELEC -eq 1 ]; then
|
|
|
|
# copy to alternate location, because of readonly file system
|
|
|
|
# /storage/.config is available as samba share. A symbolic link would not be working
|
|
|
|
false | cp -i /storage/hyperion/config/hyperion.config.json /storage/.config/hyperion.config.json 2>/dev/null
|
|
|
|
else
|
|
|
|
ln -s /opt/hyperion/config/hyperion.config.json /etc/hyperion.config.json
|
|
|
|
fi
|
2013-07-26 22:38:34 +02:00
|
|
|
|
2013-10-02 09:44:08 +02:00
|
|
|
# Copy the service control configuration to /etc/int
|
2014-01-04 14:12:33 +01:00
|
|
|
if [ $USE_INITCTL -eq 1 ]; then
|
2014-01-05 15:47:47 +01:00
|
|
|
echo 'Installing initctl script'
|
2014-01-04 14:12:33 +01:00
|
|
|
if [ $IS_RASPBMC -eq 1 ]; then
|
|
|
|
wget -N https://raw.github.com/tvdzwan/hyperion/master/deploy/hyperion.conf -P /etc/init/
|
|
|
|
else
|
|
|
|
wget -N https://raw.github.com/tvdzwan/hyperion/master/deploy/hyperion.xbian.conf -O /etc/init/hyperion.conf
|
|
|
|
fi
|
2014-01-05 15:47:47 +01:00
|
|
|
elif [ $USE_SERVICE -eq 1 ]; then
|
|
|
|
echo 'Installing startup script in init.d'
|
2014-01-04 14:12:33 +01:00
|
|
|
# place startup script in init.d and add it to upstart
|
2014-01-04 14:28:33 +01:00
|
|
|
ln -fs /opt/hyperion/init.d/hyperion.init.sh /etc/init.d/hyperion
|
2014-01-04 14:12:33 +01:00
|
|
|
chmod +x /etc/init.d/hyperion
|
|
|
|
update-rc.d hyperion defaults 98 02
|
2014-01-05 15:47:47 +01:00
|
|
|
elif [ $IS_OPENELEC -eq 1 ]; then
|
|
|
|
# only add to start script if hyperion is not present yet
|
|
|
|
if [ `cat /storage/.config/autostart.sh 2>/dev/null | grep hyperiond | wc -l` -eq 0 ]; then
|
|
|
|
echo 'Adding Hyperion to autostart script'
|
|
|
|
echo "/storage/hyperion/bin/hyperiond.sh /storage/.config/hyperion.config.json > /dev/null 2>&1 &" >> /storage/.config/autostart.sh
|
|
|
|
chmod +x /storage/.config/autostart.sh
|
|
|
|
fi
|
2013-11-24 13:37:30 +01:00
|
|
|
fi
|
2013-10-02 09:44:08 +02:00
|
|
|
|
|
|
|
# Start the hyperion daemon
|
2014-01-04 14:12:33 +01:00
|
|
|
if [ $USE_INITCTL -eq 1 ]; then
|
|
|
|
/sbin/initctl start hyperion
|
2014-01-05 15:47:47 +01:00
|
|
|
elif [ $USE_SERVICE -eq 1 ]; then
|
2014-01-04 14:12:33 +01:00
|
|
|
/usr/sbin/service hyperion start
|
|
|
|
fi
|