aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Healy <lmiphay@gmail.com>2018-02-11 18:53:09 +0000
committerPaul Healy <lmiphay@gmail.com>2018-02-11 18:53:09 +0000
commit239b3848cd0e7cbcd96cf115ce750c288eca789b (patch)
tree4a4c3e17e7fc91f1b377e72fc1a5eb187911537a /app-misc/homeassistant-bin/files
parentrebump homeassistant (diff)
downloadlmiphay-239b3848cd0e7cbcd96cf115ce750c288eca789b.tar.gz
lmiphay-239b3848cd0e7cbcd96cf115ce750c288eca789b.tar.bz2
lmiphay-239b3848cd0e7cbcd96cf115ce750c288eca789b.zip
add update helper
Diffstat (limited to 'app-misc/homeassistant-bin/files')
-rwxr-xr-xapp-misc/homeassistant-bin/files/update-homeassistant40
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