mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 04:52:12 +00:00
Renames the filename so that it accurately reflects its contents given the changes to the "Recommended setup" page in the previous commit, and updates all links accordingly.
84 lines
2.7 KiB
Bash
Executable File
84 lines
2.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Use this script to provision dependencies for your Zulip installation.
|
|
# This script is idempotent, so it can be restarted at any time, and it
|
|
# will usually run fairly quickly when your dependencies are up to date.
|
|
|
|
set -e
|
|
if [ "$EUID" -eq 0 ]; then
|
|
echo "Error: The provision script must not be run as root" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ -e "$(dirname "${BASH_SOURCE[0]}")/../.vagrant" ] && [ ! -e /home/vagrant ]; then
|
|
echo 'Error: provision should be run inside the Vagrant environment.' >&2
|
|
# shellcheck disable=SC2016
|
|
echo 'Try `vagrant up --provision`.' >&2
|
|
exit 1
|
|
fi
|
|
|
|
os="$(. /etc/os-release && echo "$ID $VERSION_ID")"
|
|
case "$os" in
|
|
'ubuntu 14.04' | 'ubuntu 16.04' | 'ubuntu 18.04' | 'debian 10')
|
|
echo "Error: $os is no longer a supported platform for Zulip." >&2
|
|
if [ -e /home/vagrant ]; then
|
|
# shellcheck disable=SC2016
|
|
echo 'To upgrade, run `vagrant destroy`, and then recreate the Vagrant guest.' >&2
|
|
echo 'See: https://zulip.readthedocs.io/en/latest/development/setup-recommended.html' >&2
|
|
fi
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
python_version="$(python3 --version)"
|
|
case "$python_version" in
|
|
Python\ 3.[0-7].*)
|
|
echo 'Error: Zulip requires an OS with Python 3.8 or later.' >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
FAIL='\033[91m'
|
|
WARNING='\033[93m'
|
|
ENDC='\033[0m'
|
|
|
|
# Make the script independent of the location from where it is executed
|
|
PARENT_PATH=$(
|
|
cd "$(dirname "${BASH_SOURCE[0]}")"
|
|
pwd -P
|
|
)
|
|
cd "$PARENT_PATH"
|
|
mkdir -p ../var/log
|
|
LOG_PATH="../var/log/provision.log"
|
|
|
|
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
|
|
./lib/provision.py "$@" 2>&1 | tee -a "$LOG_PATH"
|
|
failed=${PIPESTATUS[0]}
|
|
|
|
if [ "$failed" -ne 0 ]; then
|
|
echo -e "$FAIL"
|
|
echo "Provisioning failed (exit code $failed)!"
|
|
echo
|
|
echo "* Look at the traceback(s) above to find more about the errors."
|
|
echo "* Resolve the errors or get help on chat."
|
|
echo "* If you can fix this yourself, you can re-run tools/provision at any time."
|
|
echo "* Logs are here: zulip/var/log/provision.log"
|
|
echo -e "$ENDC"
|
|
exit "$failed"
|
|
elif [ "$VIRTUAL_ENV" != "/srv/zulip-py3-venv" ] && [ -z "${SKIP_VENV_SHELL_WARNING}" ]; then
|
|
echo -e "$WARNING"
|
|
echo "WARNING: This shell does not have the Zulip Python 3 virtualenv activated."
|
|
echo "Zulip commands will fail until you activate the virtualenv."
|
|
echo
|
|
echo "To update the shell, run:"
|
|
echo " source /srv/zulip-py3-venv/bin/activate"
|
|
# shellcheck disable=SC2016
|
|
echo 'or just close this shell and start a new one (with Vagrant, `vagrant ssh`).'
|
|
echo -en "$ENDC"
|
|
fi
|
|
exit 0
|