diff options
Diffstat (limited to 'homegear.install')
-rw-r--r-- | homegear.install | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/homegear.install b/homegear.install new file mode 100644 index 000000000000..912402156e92 --- /dev/null +++ b/homegear.install @@ -0,0 +1,95 @@ +fix_owner_perms() { + chmod 440 /etc/homegear/rpcclients.conf + chown homegear:homegear /etc/homegear/rpcclients.conf + + mkdir -p /var/run/homegear + chown homegear:homegear /var/run/homegear + chmod 750 /var/run/homegear + + mkdir -p /var/lib/homegear + chown homegear:homegear /var/lib/homegear + chmod 750 /var/lib/homegear + + mkdir -p /var/log/homegear + chown homegear:homegear /var/log/homegear + chmod 750 /var/log/homegear + + chown -R homegear:homegear /var/lib/homegear/scripts + chmod -R 550 /var/lib/homegear/scripts + + chmod -R 550 /var/lib/homegear/firmware + + chown -R homegear:homegear /var/lib/homegear/modules + chmod -R 550 /var/lib/homegear/modules + find /var/lib/homegear/www -type d -exec chmod 550 {} \; + find /var/lib/homegear/www -type f -exec chmod 440 {} \; +} + +post_install() { + result=`id -u homegear 2>/dev/null` + if [ "0$result" -eq "0" ]; then + useradd --system --shell /bin/false homegear >/dev/null 2>&1 + [ $? -ne 0 ] && exit 1 + usermod -a -G dialout homegear 2>/dev/null + usermod -a -G gpio homegear 2>/dev/null + usermod -a -G spi homegear 2>/dev/null + fi + + if test ! -e /var/lib/homegear/scripts; then + rm -Rf /tmp/HomegearScriptsDir + [ $? -ne 0 ] && exit 1 + mkdir /tmp/HomegearScriptsDir + [ $? -ne 0 ] && exit 1 + wget -P /tmp/HomegearScriptsDir/ http://homegear.eu/downloads/Homegear_PHP_XMLRPC_Client.zip + [ $? -ne 0 ] && exit 1 + unzip -d /tmp/HomegearScriptsDir /tmp/HomegearScriptsDir/Homegear_PHP_XMLRPC_Client.zip + [ $? -ne 0 ] && exit 1 + rm /tmp/HomegearScriptsDir/Homegear_PHP_XMLRPC_Client.zip + mkdir /var/lib/homegear/scripts + [ $? -ne 0 ] && exit 1 + mv /tmp/HomegearScriptsDir/* /var/lib/homegear/scripts + [ $? -ne 0 ] && exit 1 + chown -R homegear:homegear /var/lib/homegear/scripts + chmod -R 550 /var/lib/homegear/scripts + rm -Rf /tmp/HomegearScriptsDir + fi + + pip2 install python-lzo + + if test ! -e /etc/homegear/devices/0/rf_s.xml; then + echo "Downloading device description files..." + /var/lib/homegear/GetDeviceFiles.sh + fi + + echo "Downloading current firmware updates..." + /var/lib/homegear/firmware/GetFirmwareUpdates.sh + [ $? -ne 0 ] && exit 1 + + if test ! -e /etc/homegear/homegear.crt; then + openssl genrsa -out /etc/homegear/homegear.key 2048 + openssl req -batch -new -key /etc/homegear/homegear.key -out /etc/homegear/homegear.csr + openssl x509 -req -in /etc/homegear/homegear.csr -signkey /etc/homegear/homegear.key -out /etc/homegear/homegear.crt + rm /etc/homegear/homegear.csr + chown homegear:homegear /etc/homegear/homegear.key + chmod 400 /etc/homegear/homegear.key + openssl dhparam -check -text -5 1024 -out /etc/homegear/dh1024.pem + chown homegear:homegear /etc/homegear/dh1024.pem + chmod 400 /etc/homegear/dh1024.pem + fi + + fix_owner_perms +} + +post_upgrade() { + fix_owner_perms +} + +post_remove() { + if test -e /etc/homegear; then + chown -R root:root /etc/homegear + fi + if test -e /var/lib/homegear; then + chown -R root:root /var/lib/homegear + fi + userdel homegear > /dev/null 2>&1 +} |