mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	We have disabled CircleCI and are using GitHub Actions for automated testing. docs: Changed context from CircleCI to Github Actions and wrote some documentation specific to GH Actions. tools: Replaced env checks for CIRCLECI with GITHUB_ACTION. README: Use GitHub Actions build status badge.
		
			
				
	
	
		
			77 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.5 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
 | 
						|
 | 
						|
os="$(. /etc/os-release && echo "$ID $VERSION_ID")"
 | 
						|
case "$os" in
 | 
						|
    'ubuntu 14.04' | 'ubuntu 16.04')
 | 
						|
        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-vagrant.html' >&2
 | 
						|
        fi
 | 
						|
        exit 1
 | 
						|
        ;;
 | 
						|
esac
 | 
						|
 | 
						|
python_version="$(python3 --version)"
 | 
						|
case "$python_version" in
 | 
						|
    Python\ 3.[0-5].*)
 | 
						|
        echo 'Error: Zulip requires an OS with Python 3.6 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
 |