112 lines
3.2 KiB
Bash
112 lines
3.2 KiB
Bash
#!/bin/bash
|
|
#########################################################
|
|
# This script is intended to be run like this:
|
|
#
|
|
# curl -L https://power-mailinabox.net/setup.sh | sudo bash
|
|
#
|
|
#########################################################
|
|
|
|
# Are we running as root?
|
|
if [[ $EUID -ne 0 ]]; then
|
|
echo "This script must be run as root. Did you leave out sudo?"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f /usr/bin/lsb_release ]; then
|
|
# Try installing it (apt install lsb-release)
|
|
if [ ! -f /usr/bin/apt-get ]; then
|
|
echo "This operating system does not have apt-get! This means it is unsupported!"
|
|
echo "This script must be run on a system running one of the following OS-es:"
|
|
echo "* Debian 10 (buster)"
|
|
echo "* Debian 11 (bullseye)"
|
|
echo "* Ubuntu 20.04 LTS (Focal Fossa)"
|
|
echo "* Ubuntu 22.04 LTS (Jammy Jellyfish)"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Installing lsb-release to understand which operating system we're running..."
|
|
apt-get -q -q update
|
|
DEBIAN_FRONTEND=noninteractive apt-get -q -q install -y lsb-release < /dev/null
|
|
fi
|
|
|
|
if [ -z "$TAG" ]; then
|
|
# Make sure we're running on the correct operating system
|
|
OS=$(lsb_release -d | sed 's/.*:\s*//')
|
|
if [ "$OS" == "Debian GNU/Linux 11 (bullseye)" ] ||
|
|
[ "$(echo $OS | grep -o 'Ubuntu 20.04')" == "Ubuntu 20.04" ] ||
|
|
[ "$(echo $OS | grep -o 'Ubuntu 22.04')" == "Ubuntu 22.04" ]
|
|
then
|
|
TAG=v60.5
|
|
elif [ "$OS" == "Debian GNU/Linux 10 (buster)" ]; then
|
|
echo "We are going to install the last version of Power Mail-in-a-Box supporting Debian 10 (buster)."
|
|
echo "IF THIS IS A NEW INSTALLATION, STOP NOW, AND USE A SUPPORTED DISTRIBUTION INSTEAD (ONE OF THESE):"
|
|
echo "* Debian 11 (bullseye)"
|
|
echo "* Ubuntu 20.04 LTS (Focal Fossa)"
|
|
echo "* Ubuntu 22.04 LTS (Jammy Jellyfish)"
|
|
echo
|
|
echo "IF YOU'RE UPGRADING THE BOX TO THE LATEST VERSION, PLEASE VISIT THIS PAGE FOR NOTES ON HOW TO"
|
|
echo "UPGRADE YOUR SISTEM TO DEBIAN 11 (bullseye)"
|
|
echo "https://power-mailinabox.net/buster-eol"
|
|
|
|
while true; do
|
|
read -p "Do you want to proceed? ([Y]es/[N]o) " yn
|
|
|
|
case $yn in
|
|
Yes | Y | yes | y )
|
|
break
|
|
;;
|
|
No | N | no | n )
|
|
echo "Installation cancelled."
|
|
exit 1
|
|
;;
|
|
* )
|
|
;;
|
|
esac
|
|
done
|
|
|
|
TAG=v56.5
|
|
else
|
|
echo "This script must be run on a system running one of the following OS-es:"
|
|
echo "* Debian 11 (bullseye)"
|
|
echo "* Ubuntu 20.04 LTS (Focal Fossa)"
|
|
echo "* Ubuntu 22.04 LTS (Jammy Jellyfish)"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Clone the Mail-in-a-Box repository if it doesn't exist.
|
|
if [ ! -d $HOME/mailinabox ]; then
|
|
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
|
|
|
|
echo Downloading Mail-in-a-Box $TAG. . .
|
|
git clone \
|
|
-b $TAG --depth 1 \
|
|
https://git.nibbletools.com/beenull/power-mailinabox \
|
|
$HOME/mailinabox \
|
|
< /dev/null 2> /dev/null
|
|
|
|
echo
|
|
fi
|
|
|
|
# Change directory to it.
|
|
cd $HOME/mailinabox
|
|
|
|
# Update it.
|
|
if [ "$TAG" != "$(git describe --tags)" ]; then
|
|
echo Updating Mail-in-a-Box to $TAG . . .
|
|
git fetch --depth 1 --force --prune origin tag $TAG
|
|
if ! git checkout -q $TAG; then
|
|
echo "Update failed. Did you modify something in $(pwd)?"
|
|
exit 1
|
|
fi
|
|
echo
|
|
fi
|
|
|
|
# Start setup script.
|
|
setup/start.sh
|
|
|