mirror of
https://github.com/mail-in-a-box/mailinabox.git
synced 2024-11-26 02:57:04 +00:00
711db9352c
When executed "cat bootstrap.sh | bash", apt-get mangled stdin. The script would terminate at the end of the if block containing apt-get (that seems to be as much as bash read from the pipe) and the remainder of the script was output to the console. This was very weird. Ensuring that apt-get and git have their stdins redirected from /dev/null seems to fix the problem. see #224
52 lines
1.0 KiB
Bash
52 lines
1.0 KiB
Bash
#!/bin/bash
|
|
#########################################################
|
|
# This script is intended to be run like this:
|
|
#
|
|
# curl https://.../bootstrap.sh | sudo bash
|
|
#
|
|
#########################################################
|
|
|
|
if [ -z "$TAG" ]; then
|
|
TAG=v0.03
|
|
fi
|
|
|
|
# Are we running as root?
|
|
if [[ $EUID -ne 0 ]]; then
|
|
echo "This script must be run as root. Did you leave out sudo?"
|
|
exit
|
|
fi
|
|
|
|
# Clone the Mail-in-a-Box repository if it doesn't exist.
|
|
if [ ! -d mailinabox ]; then
|
|
echo Installing git . . .
|
|
DEBIAN_FRONTEND=noninteractive apt-get -q -q install -y git < /dev/null
|
|
echo
|
|
|
|
echo Downloading Mail-in-a-Box . . .
|
|
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
|
|
|
|
# Update it.
|
|
if [ "$TAG" != `git describe` ]; then
|
|
echo Updating Mail-in-a-Box to $TAG . . .
|
|
git fetch
|
|
if ! git checkout -q $TAG; then
|
|
echo "Update failed. Did you modify something in `pwd`?"
|
|
exit
|
|
fi
|
|
echo
|
|
fi
|
|
|
|
# Start setup script.
|
|
setup/start.sh
|
|
|