#!/bin/bash # Not to fail on old key we will not update package list from Z-Wave repo - this will be done later after key installation rm -f /etc/apt/sources.list.d/z-wave-me.list # Install additional packages that help to add Z-Wave.Me repository apt update -y --allow-releaseinfo-change apt install dirmngr apt-transport-https -y # Check for distro apt install lsb_release >/dev/null 2>&1 # built-in (no such package) starting from stretch distro=`lsb_release -a 2>/dev/null | grep Codename | awk '{print $2}'` if [ "$distro" == "" -o "$distro" == "n/a" ] then distro=`cat /etc/os-release | grep VERSION_CODENAME | awk -F"=" '{print $2}'` fi if [ "$distro" != "buster" -a "$distro" != "bullseye" ] then echo "Your Raspbian distribution is currently not supported by Z-Way" echo "Please contact Z-Wave.Me support for more information" echo "Supported Raspbian distributions are Buster and Bullseye" exit 1 fi # Add Mosquitto repository ## they have a broken SSL certificate, don't rely on them #apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 61611AE430993623 #echo "deb https://repo.mosquitto.org/debian $distro main" > /etc/apt/sources.list.d/mosquitto-buster.list # Add Z-Wave.Me repository apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0x7E148E3C echo "deb https://repo.z-wave.me/z-way/raspbian $distro main" > /etc/apt/sources.list.d/z-wave-me.list # Update packages list apt update -y # Install Z-Way if [[ -z "$ZWAY_UPIF" ]]; then # don't update webif if running from webif apt install --reinstall -y z-way-full z-way-server zbw webif else apt install --reinstall -y z-way-server zbw fi # Override Z-Way/zbw/webif configs from the package (keep private files) CONF_FILES=`dpkg-query -W -f='${Conffiles}\n' z-way-server webif zbw | awk 'OFS=" "{print $2,$1}' | LANG=C md5sum --quiet -c 2>/dev/null | cut -f 1 -d :` if [[ -n "$CONF_FILES" ]]; then echo "Package configuration files were changes:" $CONF_FILES RESTORE_CONFIG_FILE="yes" if [[ -z "$ZWAY_UPIF" ]]; then read -p "Restore config files to the package default state? (type 'yes' to restore): " RESTORE_CONFIG_FILE < /dev/tty fi if [[ "$RESTORE_CONFIG_FILE" == "yes" ]]; then echo "Replacing them by package configuration files" TMP_DIR=`mktemp -d` chown _apt:root $TMP_DIR pushd $TMP_DIR apt download z-way-server dpkg-deb --fsys-tarfile ./z-way-server*.deb | sudo tar -C / -x ./opt/z-way-server/config/Defaults.xml ./opt/z-way-server/config.xml ./etc/z-way/box_type ./etc/logrotate.d/z-way-server ./etc/init.d/z-way-server apt download webif dpkg-deb --fsys-tarfile ./webif*.deb | sudo tar -C / -x ./etc/webif.conf ./etc/mongoose/mongoose.conf # no config files in zbw package # apt download zbw # dpkg-deb --fsys-tarfile ./zbw*.deb | sudo tar -C / -x ... popd rm -R $TMP_DIR else echo "Keeping your changed configuration files" fi fi