#!/bin/bash # Install requirements and build dependencies for Home Assinstant in Docker. INSTALL_TELLSTICK="${INSTALL_TELLSTICK:-yes}" INSTALL_OPENALPR="${INSTALL_OPENALPR:-yes}" INSTALL_FFMPEG="${INSTALL_FFMPEG:-yes}" INSTALL_PHANTOMJS="${INSTALL_PHANTOMJS:-yes}" # Required debian packages for running hass or components PACKAGES=( # build-essential is required for python pillow module on non-x86_64 arch build-essential # libxrandr-dev is required for openalpr libxrandr-dev # homeassistant.components.device_tracker.nmap_tracker nmap net-tools libcurl3-dev # homeassistant.components.device_tracker.bluetooth_tracker bluetooth libglib2.0-dev libbluetooth-dev ) # Required debian packages for building dependencies PACKAGES_DEV=( cmake git # python-openzwave cython3 libudev-dev # libcec swig ) install_tellstick () { TELLSTICK_PACKAGES=( # homeassistant.components.tellstick libtelldus-core2 ) # Add Tellstick repository echo "deb http://download.telldus.com/debian/ stable main" >> /etc/apt/sources.list.d/telldus.list wget -qO - http://download.telldus.se/debian/telldus-public.key | apt-key add - apt-get update apt-get install -y --no-install-recommends ${TELLSTICK_PACKAGES[@]} } install_openalpr () { OPENALPR_PACKAGES=( # homeassistant.components.image_processing.openalpr_local libopencv-dev libtesseract-dev libleptonica-dev liblog4cplus-dev ) apt-get install -y --no-install-recommends ${OPENALPR_PACKAGES[@]} # Clone the latest code from GitHub git clone https://github.com/openalpr/openalpr.git /usr/local/src/openalpr # Setup the build directory cd /usr/local/src/openalpr/src mkdir -p build cd build # Setup the compile environment cmake -DWITH_TEST=FALSE -DWITH_BINDING_JAVA=FALSE --DWITH_BINDING_PYTHON=FALSE --DWITH_BINDING_GO=FALSE -DWITH_DAEMON=FALSE -DCMAKE_INSTALL_PREFIX:PATH=/usr/local .. # compile the library make # Install the binaries/libraries to your local system (prefix is /usr/local) make install } install_ffmpeg () { apt-get install -y --no-install-recommends -t jessie-backports ffmpeg } # Stop on errors set -e cd "$(dirname "$0")/.." # Add jessie-backports echo "Adding jessie-backports" echo "deb http://deb.debian.org/debian jessie-backports main" >> /etc/apt/sources.list # Install packages echo "Updating Apt repositories" apt-get update echo "Installing packages" apt-get install -y --no-install-recommends ${PACKAGES[@]} ${PACKAGES_DEV[@]} if [ "$INSTALL_TELLSTICK" == "yes" ]; then echo "Installing tellstick" install_tellstick fi if [ "$INSTALL_OPENALPR" == "yes" ]; then echo "Installing openalpr" install_openalpr fi if [ "$INSTALL_FFPMEG" == "yes" ]; then echo "Installing ffmpeg" install_ffmpeg fi # Build and install openzwave echo "Installing python-openzwave" /usr/src/app/script/build_python_openzwave mkdir -p /usr/local/share/python-openzwave cp -R /usr/src/app/build/python-openzwave/openzwave/config /usr/local/share/python-openzwave/config # Build and install libcec echo "Installing libcec" /usr/src/app/script/build_libcec if [ "$INSTALL_PHANTOMJS" == "yes" ]; then # Install phantomjs script/install_phantomjs fi # Remove packages echo "Removing dev packages" apt-get remove -y --purge ${PACKAGES_DEV[@]} apt-get -y --purge autoremove # Cleanup apt-get clean rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* build/