2017-01-14 11:19:26 +01:00
|
|
|
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
if [ "$EUID" -eq 0 ]; then
|
|
|
|
echo "Error: The provision script must not be run as root" >&2
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
#Make the script independent of the location from where it is
|
|
|
|
#executed
|
|
|
|
PARENT_PATH=$( cd "$(dirname "${BASH_SOURCE}")" ; pwd -P )
|
|
|
|
cd "$PARENT_PATH"
|
|
|
|
mkdir -p ../var/log
|
|
|
|
LOG_PATH="../var/log/provision.log"
|
|
|
|
PROVISION_PATH="lib/provision.py"
|
|
|
|
|
|
|
|
echo "PROVISIONING STARTING." >> $LOG_PATH
|
|
|
|
|
2017-01-17 23:23:59 +01:00
|
|
|
# PYTHONUNBUFFERED is important to ensure that tracebacks don't get
|
|
|
|
# lost far above where they should be in the output.
|
|
|
|
export PYTHONUNBUFFERED=1
|
2017-01-14 11:19:26 +01:00
|
|
|
python "$PROVISION_PATH" $@ 2>&1 | tee -a "$LOG_PATH"
|
|
|
|
failed=${PIPESTATUS[0]}
|
|
|
|
|
|
|
|
if [ $failed = 1 ]; then
|
|
|
|
echo -e "\033[0;31m"
|
|
|
|
echo "Provisioning failed!"
|
|
|
|
echo
|
|
|
|
echo -n "The provision process is designed to be idempotent, so you can retry "
|
|
|
|
echo -n "after resolving whatever issue caused the failure (there should be a traceback above). "
|
|
|
|
echo -n "A log of this installation is available in zulip/log/provision.log"
|
|
|
|
echo -e "\033[0m"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
exit 0
|