2014-08-16 17:30:53 +00:00
|
|
|
#!/bin/bash
|
|
|
|
#########################################################
|
|
|
|
# This script is intended to be run like this:
|
|
|
|
#
|
2018-10-25 03:31:20 +00:00
|
|
|
# wget https://mailinabox.email/setup.sh -qO - | sudo bash -s
|
2018-11-02 08:07:15 +00:00
|
|
|
# or
|
2018-10-25 03:31:20 +00:00
|
|
|
# curl -s https://mailinabox.email/setup.sh | sudo bash -s
|
2014-08-16 17:30:53 +00:00
|
|
|
#
|
|
|
|
#########################################################
|
|
|
|
|
2014-08-25 12:18:46 +00:00
|
|
|
if [ -z "$TAG" ]; then
|
2019-01-09 12:11:53 +00:00
|
|
|
# If a version to install isn't explicitly given as an environment
|
|
|
|
# variable, then install the latest version. But the latest version
|
|
|
|
# depends on the operating system. Existing Ubuntu 14.04 users need
|
|
|
|
# to be able to upgrade to the latest version supporting Ubuntu 14.04,
|
|
|
|
# in part because an upgrade is required before jumping to Ubuntu 18.04.
|
2019-01-12 13:24:15 +00:00
|
|
|
# New users on Ubuntu 18.04 need to get the latest version number too.
|
2019-01-09 12:11:53 +00:00
|
|
|
#
|
2019-01-12 13:24:15 +00:00
|
|
|
# Also, the system status checks read this script for TAG = (without the
|
|
|
|
# space, but if we put it in a comment it would confuse the status checks!)
|
|
|
|
# to get the latest version, so the first such line must be the one that we
|
|
|
|
# want to display in status checks.
|
2019-01-09 12:11:53 +00:00
|
|
|
if [ "`lsb_release -d | sed 's/.*:\s*//' | sed 's/18\.04\.[0-9]/18.04/' `" == "Ubuntu 18.04 LTS" ]; then
|
|
|
|
# This machine is running Ubuntu 18.04.
|
2019-07-05 15:56:54 +00:00
|
|
|
TAG=v0.41
|
2019-01-09 12:11:53 +00:00
|
|
|
|
|
|
|
elif [ "`lsb_release -d | sed 's/.*:\s*//' | sed 's/14\.04\.[0-9]/14.04/' `" == "Ubuntu 14.04 LTS" ]; then
|
|
|
|
# This machine is running Ubuntu 14.04.
|
|
|
|
echo "You are installing the last version of Mail-in-a-Box that will"
|
|
|
|
echo "support Ubuntu 14.04. If this is a new installation of Mail-in-a-Box,"
|
|
|
|
echo "stop now and switch to a machine running Ubuntu 18.04. If you are"
|
|
|
|
echo "upgrading an existing Mail-in-a-Box --- great. After upgrading this"
|
|
|
|
echo "box, please visit https://mailinabox.email for notes on how to upgrade"
|
|
|
|
echo "to Ubuntu 18.04."
|
2019-01-12 13:24:15 +00:00
|
|
|
echo ""
|
2019-01-09 12:11:53 +00:00
|
|
|
TAG=v0.30
|
|
|
|
|
|
|
|
else
|
|
|
|
echo "This script must be run on a system running Ubuntu 18.04 or Ubuntu 14.04."
|
|
|
|
exit
|
|
|
|
fi
|
2014-08-25 12:18:46 +00:00
|
|
|
fi
|
2014-08-21 17:23:47 +00:00
|
|
|
|
2018-10-25 03:31:20 +00:00
|
|
|
if [[ "$#" -ne 0 ]]; then
|
|
|
|
echo "Usage: \"wget https://mailinabox.email/setup.sh -qO - | sudo bash -s\" or \"curl -s https://mailinabox.email/setup.sh | sudo bash -s\"" >&2
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2014-08-16 17:30:53 +00:00
|
|
|
# Are we running as root?
|
|
|
|
if [[ $EUID -ne 0 ]]; then
|
2018-10-25 03:31:20 +00:00
|
|
|
echo "This script must be run as root. Did you leave out sudo?" >&2
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Check if on Linux
|
|
|
|
if ! echo "$OSTYPE" | grep -iq "linux"; then
|
|
|
|
echo "Error: This script must be run on Linux." >&2
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Check connectivity
|
|
|
|
if ! ping -q -c 3 mailinabox.email > /dev/null 2>&1; then
|
|
|
|
echo "Error: Could not reach mailinabox.email, please check your internet connection and run this script again." >&2
|
|
|
|
exit 1
|
2014-08-16 17:30:53 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Clone the Mail-in-a-Box repository if it doesn't exist.
|
2014-10-15 16:22:48 +00:00
|
|
|
if [ ! -d $HOME/mailinabox ]; then
|
2015-06-10 13:33:47 +00:00
|
|
|
if [ ! -f /usr/bin/git ]; then
|
|
|
|
echo Installing git . . .
|
|
|
|
apt-get -q -q update
|
|
|
|
DEBIAN_FRONTEND=noninteractive apt-get -q -q install -y git < /dev/null
|
|
|
|
echo
|
|
|
|
fi
|
2014-09-21 20:37:04 +00:00
|
|
|
|
2014-10-15 16:22:48 +00:00
|
|
|
echo Downloading Mail-in-a-Box $TAG. . .
|
2014-10-05 17:32:52 +00:00
|
|
|
git clone \
|
|
|
|
-b $TAG --depth 1 \
|
|
|
|
https://github.com/mail-in-a-box/mailinabox \
|
|
|
|
$HOME/mailinabox \
|
|
|
|
< /dev/null 2> /dev/null
|
|
|
|
|
|
|
|
echo
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Change directory to it.
|
|
|
|
cd $HOME/mailinabox
|
2014-08-16 17:30:53 +00:00
|
|
|
|
2014-10-05 17:32:52 +00:00
|
|
|
# Update it.
|
|
|
|
if [ "$TAG" != `git describe` ]; then
|
2014-08-25 12:18:46 +00:00
|
|
|
echo Updating Mail-in-a-Box to $TAG . . .
|
2014-10-15 16:22:48 +00:00
|
|
|
git fetch --depth 1 --force --prune origin tag $TAG
|
2014-08-21 17:23:47 +00:00
|
|
|
if ! git checkout -q $TAG; then
|
2014-08-16 17:30:53 +00:00
|
|
|
echo "Update failed. Did you modify something in `pwd`?"
|
|
|
|
exit
|
|
|
|
fi
|
2014-10-05 17:32:52 +00:00
|
|
|
echo
|
2014-08-16 17:30:53 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Start setup script.
|
|
|
|
setup/start.sh
|
2014-09-21 20:37:04 +00:00
|
|
|
|