HomeAssistantRepository/app-misc/homeassistant/files/update-homeassistant

49 lines
1.3 KiB
Bash

#!/bin/bash
# This script will:
# 1. stop homeassistant if it is running (wait/kill it if it fails to stop)
# 2. backs up /opt/homeassistant (moves it to: /opt/homeassistant-OLD_VERSION)
# 3. merges the new version of homeassistant
# 4. re-starts homeassistant if the merge was successful
prog="homeassistant"
atom="app-misc/${prog}-bin"
if /etc/init.d/${prog} --ifstarted stop ; then
echo "${prog} stopped"
else
echo "failed to stop, sleeping/killing: ${prog}"
sleep 10
pkill -9 -f "/opt/${prog}/bin/python3"
/etc/init.d/${prog} zap
fi
installed_version()
{
equery --no-color list -F '$fullversion' "${atom}" | tail -1
}
version=$(installed_version)
if [ -d "/opt/${prog}" ] ; then
if [ ! -d "/opt/${prog}-v${version}" ] ; then
echo "backing up previous version as v${version}"
echo "rollback by: mv /opt/${prog}-v${version} /opt/${prog}"
mv "/opt/${prog}" "/opt/${prog}-v${version}"
else
echo "Previous backup found - (re-)move it manually and run the script again"
exit 2
fi
fi
if emerge -v1 "${atom}" ; then
echo "${atom} $(installed_version) merge successful"
/etc/init.d/${prog} --ifstopped start
echo "now check the logs in /var/log/${prog}; e.g."
echo " tail -f /var/log/${prog}/server.log"
exit 0
else
echo "${atom} merge failed"
exit 1
fi