#!/usr/bin/env python3 import os import shutil import sys import subprocess import tempfile import glob os.environ["PYTHONUNBUFFERED"] = "y" sys.path.append(os.path.join(os.path.dirname(__file__), '..', "..")) from scripts.lib.zulip_tools import DEPLOYMENTS_DIR, FAIL, ENDC, make_deploy_path, \ get_deployment_version, is_invalid_upgrade, overwrite_symlink import version if len(sys.argv) != 2: print(FAIL + "Usage: %s " % (sys.argv[0],) + ENDC) sys.exit(1) tarball_path = sys.argv[1] deploy_path = make_deploy_path() extract_path = tempfile.mkdtemp() subprocess.check_call(["tar", "-xf", tarball_path, "-C", extract_path]) new_version = get_deployment_version(extract_path) current_version = version.ZULIP_VERSION if is_invalid_upgrade(current_version, new_version): print(FAIL + "Your current version is very old. Please first upgrade to version " "1.4.3 and then upgrade to {}.".format(new_version) + ENDC) shutil.rmtree(extract_path) sys.exit(1) shutil.move(glob.glob(os.path.join(extract_path, "zulip-server-*"))[0], deploy_path) os.rmdir(extract_path) overwrite_symlink("/etc/zulip/settings.py", os.path.join(deploy_path, "zproject/prod_settings.py")) overwrite_symlink(deploy_path, os.path.join(DEPLOYMENTS_DIR, "next")) print(deploy_path) sys.exit(0)