#!/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 # PYTHONUNBUFFERED is important to ensure that tracebacks don't get # lost far above where they should be in the output. export PYTHONUNBUFFERED=1 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