#!/bin/bash # # Roundcube software upgrader. # # Config parameters BASENAME="`basename $0`" OLD_VERSION="$1" VERSION="$2" SHA256="$3" # Syntax check if [ -z "$3" ]; then echo "usage: $BASENAME " exit 1 fi # Check installed versions if [ ! -d "roundcubemail-$OLD_VERSION" ]; then echo "error: roundcubemail-$OLD_VERSION is not installed, aborting." exit 1 elif [ -d "roundcubemail-$VERSION" ]; then echo "error: roundcubemail-$VERSION already installed, aborting." exit 1 fi # Download package wget -c https://github.com/roundcube/roundcubemail/releases/download/$VERSION/roundcubemail-$VERSION.tar.gz # Check integrity echo "$SHA256 roundcubemail-$VERSION.tar.gz" | sha256sum -c if [ "$?" != "0" ]; then echo "error: roundcubemail-$VERSION.tar.gz doesn't match SHA256 $SHA256, aborting" exit fi # Decompress tar xvf roundcubemail-$VERSION.tar.gz # Remove package rm roundcubemail-$VERSION.tar.gz # Fix permissions chown -R root: roundcubemail-$VERSION # Sync configuration for section in db config custom logs temp; do rsync -av roundcubemail-$OLD_VERSION/$section/ roundcubemail-$VERSION/$section/ done # Symlink skins ( cd roundcubemail-$VERSION/skins for skin in `ls ../custom/skins`; do ln -s ../custom/skins/$skin done ) # Pivot rm roundcube && ln -s roundcubemail-$VERSION roundcube # Audit echo "Audit:" && \ du -hs roundcubemail-$OLD_VERSION && \ du -hs roundcubemail-$VERSION # Manual steps echo "Please update plugin symlinks manually."