diff options
author | Paul Healy <lmiphay@gmail.com> | 2018-02-11 18:53:09 +0000 |
---|---|---|
committer | Paul Healy <lmiphay@gmail.com> | 2018-02-11 18:53:09 +0000 |
commit | 239b3848cd0e7cbcd96cf115ce750c288eca789b (patch) | |
tree | 4a4c3e17e7fc91f1b377e72fc1a5eb187911537a /app-misc/homeassistant-bin/files | |
parent | rebump homeassistant (diff) | |
download | lmiphay-239b3848cd0e7cbcd96cf115ce750c288eca789b.tar.gz lmiphay-239b3848cd0e7cbcd96cf115ce750c288eca789b.tar.bz2 lmiphay-239b3848cd0e7cbcd96cf115ce750c288eca789b.zip |
add update helper
Diffstat (limited to 'app-misc/homeassistant-bin/files')
-rwxr-xr-x | app-misc/homeassistant-bin/files/update-homeassistant | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/app-misc/homeassistant-bin/files/update-homeassistant b/app-misc/homeassistant-bin/files/update-homeassistant new file mode 100755 index 0000000..de4c56d --- /dev/null +++ b/app-misc/homeassistant-bin/files/update-homeassistant @@ -0,0 +1,40 @@ +#!/bin/bash + +# This script will: +# 1. stop homeassistant if it is running +# 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" + +/etc/init.d/${prog} --ifstarted stop + +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}" + exit 0 +else + echo "${atom} merge failed" + exit 1 +fi |