#!/bin/bash -e # # Auto install script for airtime on Ubuntu # exec > >(tee install_log.txt) exec 2>&1 if [ "$(id -u)" != "0" ]; then echo "Please run as root user." exit 1 fi #Current dir # Absolute path to this script, e.g. /home/user/bin/foo.sh SCRIPT=`readlink -f $0` # Absolute path this script is in, thus /home/user/bin SCRIPTPATH=`dirname $SCRIPT` #Prerequisite echo "----------------------------------------------------" echo " 1. Install Packages" echo "----------------------------------------------------" dist=`lsb_release -is` code=`lsb_release -cs` if [ "$dist" = "Debian" ]; then set +e grep -E "deb +http://www.deb-multimedia.org/? squeeze +main +non-free" /etc/apt/sources.list returncode=$? set -e if [ "$returncode" -ne "0" ]; then echo "deb http://www.deb-multimedia.org squeeze main non-free" >> /etc/apt/sources.list fi fi codename=`lsb_release -sc` set +e grep -E "deb +http://apt.sourcefabric.org/? +$codename +main" /etc/apt/sources.list returncode=$? set -e if [ "$returncode" != "0" ]; then echo "deb http://apt.sourcefabric.org/ $codename main" >> /etc/apt/sources.list fi apt-get update # Updated package list apt-get -y install tar gzip curl apache2 php5-pgsql libapache2-mod-php5 \ php-pear php5-gd postgresql odbc-postgresql python libsoundtouch-ocaml \ libtaglib-ocaml libao-ocaml libmad-ocaml ecasound \ libesd0 libportaudio2 libsamplerate0 rabbitmq-server patch \ php5-curl mpg123 monit python-virtualenv multitail libcamomile-ocaml-data \ libpulse0 vorbis-tools lsb-release lsof sudo mp3gain vorbisgain flac vorbis-tools \ pwgen #install packages with --force-yes option (this is useful in the case #of Debian, where these packages are unauthorized) apt-get -y --force-yes install libmp3lame-dev lame icecast2 #Debian Squeeze only has zendframework package. Newer versions of Ubuntu have zend-framework package. #Ubuntu Lucid has both zendframework and zend-framework. Difference appears to be that zendframework is for #1.10 and zend-framework is 1.11 if [ "$dist" = "Debian" ]; then apt-get -y --force-yes install zendframework else apt-get -y --force-yes install libzend-framework-php fi if [ "$code" = "lucid" ]; then apt-get -y --force-yes install timeout else apt-get -y --force-yes install coreutils fi #Install Sourcefabric's custom Liquidsoap debian package apt-get -y --force-yes install sourcefabric-keyring apt-get -y --force-yes install liquidsoap # Apache Config File echo "----------------------------------------------------" echo "2. Apache Config File" echo "----------------------------------------------------" if [ ! -f /etc/apache2/sites-available/airtime ]; then cp $SCRIPTPATH/../apache/airtime-vhost /etc/apache2/sites-available/airtime a2dissite default a2ensite airtime a2enmod rewrite php5 service apache2 restart else echo "Apache config for Airtime already exists..." fi # Enable Icecast echo "----------------------------------------------------" echo "3. Enable Icecast" echo "----------------------------------------------------" cd /etc/default/ sed -i 's/ENABLE=false/ENABLE=true/g' icecast2 set +e service icecast2 start set -e echo "" # Enable Monit echo "----------------------------------------------------" echo "4. Enable Monit" echo "----------------------------------------------------" cd /etc/default/ sed -i 's/startup=0/startup=1/g' monit set +e grep -q "include /etc/monit/conf.d" /etc/monit/monitrc RETVAL=$? set -e if [ $RETVAL -ne 0 ] ; then mkdir -p /etc/monit/conf.d echo "include /etc/monit/conf.d/*" >> /etc/monit/monitrc fi # Run Airtime Install echo "----------------------------------------------------" echo "5. Run Airtime Install" echo "----------------------------------------------------" cd $SCRIPTPATH/../../install_minimal ./airtime-install