* Refactors script/setup_docker_prereqs Refactors script/setup_docker_prereqs to allow toggling of packages to being installed * Adds support for openalpr to Docker * Updates Dockerfile Comments ENV directives in order to preserve cache. * Fixes incorrect position of echo * Fixes telldus installer by updating apt before pkg install
121 lines
3.3 KiB
Bash
Executable file
121 lines
3.3 KiB
Bash
Executable file
#!/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/
|
|
|