#!/bin/bash
# Install requirements and build dependencies for Home Assinstant in Docker.

# Stop on errors
set -e

INSTALL_TELLSTICK="${INSTALL_TELLSTICK:-yes}"
INSTALL_OPENALPR="${INSTALL_OPENALPR:-yes}"
INSTALL_FFMPEG="${INSTALL_FFMPEG:-yes}"
INSTALL_OPENZWAVE="${INSTALL_OPENZWAVE:-yes}"
INSTALL_LIBCEC="${INSTALL_LIBCEC:-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
  # homeassistant.components.image_processing.openalpr_local
  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
  # homeassistant.components.device_tracker.owntracks
  libsodium13
)

# Required debian packages for building dependencies
PACKAGES_DEV=(
  cmake git
  # python-openzwave
  cython3 libudev-dev
  # libcec
  swig
)

# Install packages
apt-get update
apt-get install -y --no-install-recommends ${PACKAGES[@]} ${PACKAGES_DEV[@]}

if [ "$INSTALL_TELLSTICK" == "yes" ]; then
  virtualization/Docker/scripts/tellstick
fi

if [ "$INSTALL_OPENALPR" == "yes" ]; then
  virtualization/Docker/scripts/openalpr
fi

if [ "$INSTALL_FFMPEG" == "yes" ]; then
  virtualization/Docker/scripts/ffmpeg
fi

if [ "$INSTALL_OPENZWAVE" == "yes" ]; then
  virtualization/Docker/scripts/python_openzwave
fi

if [ "$INSTALL_LIBCEC" == "yes" ]; then
  virtualization/Docker/scripts/libcec
fi

if [ "$INSTALL_PHANTOMJS" == "yes" ]; then
  virtualization/Docker/scripts/phantomjs
fi

# Remove 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/
