1
0
mirror of https://github.com/mail-in-a-box/mailinabox.git synced 2024-11-22 02:17:26 +00:00

bootstrap: apt was mangling stdin

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
This commit is contained in:
Joshua Tauberer 2014-10-05 13:32:52 -04:00
parent f42a1c5a74
commit 711db9352c

25
setup/bootstrap.sh Executable file → Normal file
View File

@ -16,27 +16,34 @@ if [[ $EUID -ne 0 ]]; then
exit exit
fi fi
# Go to root's home directory.
cd
# Clone the Mail-in-a-Box repository if it doesn't exist. # Clone the Mail-in-a-Box repository if it doesn't exist.
if [ ! -d mailinabox ]; then if [ ! -d mailinabox ]; then
echo Installing git . . . echo Installing git . . .
apt-get -q -q install -y git DEBIAN_FRONTEND=noninteractive apt-get -q -q install -y git < /dev/null
echo
echo Downloading Mail-in-a-Box . . . echo Downloading Mail-in-a-Box . . .
git clone -b $TAG --depth 1 https://github.com/mail-in-a-box/mailinabox 2> /dev/null git clone \
cd mailinabox -b $TAG --depth 1 \
https://github.com/mail-in-a-box/mailinabox \
$HOME/mailinabox \
< /dev/null 2> /dev/null
# If it does exist, update it. echo
else fi
# Change directory to it.
cd $HOME/mailinabox
# Update it.
if [ "$TAG" != `git describe` ]; then
echo Updating Mail-in-a-Box to $TAG . . . echo Updating Mail-in-a-Box to $TAG . . .
cd mailinabox
git fetch git fetch
if ! git checkout -q $TAG; then if ! git checkout -q $TAG; then
echo "Update failed. Did you modify something in `pwd`?" echo "Update failed. Did you modify something in `pwd`?"
exit exit
fi fi
echo
fi fi
# Start setup script. # Start setup script.