49 lines
1.3 KiB
Bash
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
|