mirror of
https://github.com/zulip/zulip.git
synced 2025-11-15 19:31:58 +00:00
The #! line processing interpreted the argument to pass to `env` as "python2.7 -u", which obviously isn't a real program. We fix this by setting the PYTHONUNBUFFERED environment variable inside the program, which has the same effect. Thanks to Dan Fedele for the bug report and suggested solution!
44 lines
1.4 KiB
Python
Executable File
44 lines
1.4 KiB
Python
Executable File
#!/usr/bin/env python2.7
|
|
import subprocess
|
|
import os
|
|
import sys
|
|
import logging
|
|
|
|
os.environ["PYTHONUNBUFFERED"] = "y"
|
|
|
|
sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..'))
|
|
from zulip_tools import FAIL, WARNING, ENDC, su_to_zulip
|
|
|
|
logging.basicConfig(format="%(asctime)s upgrade-zulip-stage-2: %(message)s",
|
|
level=logging.INFO)
|
|
|
|
if os.getuid() != 0:
|
|
logging.error("Must be run as root.")
|
|
sys.exit(1)
|
|
|
|
if len(sys.argv) != 2:
|
|
print FAIL + "Usage: %s <deploy path>" % (sys.argv[0],) + ENDC
|
|
sys.exit(1)
|
|
|
|
deploy_path = sys.argv[1]
|
|
|
|
logging.info("Upgrading system packages...")
|
|
subprocess.check_call(["apt-get", "update"])
|
|
subprocess.check_call(["apt-get", "upgrade"])
|
|
|
|
logging.info("Stopping Zulip...")
|
|
subprocess.check_call(["supervisorctl", "stop", "zulip-workers:*", "zulip-django",
|
|
"zulip-tornado"], preexec_fn=su_to_zulip)
|
|
|
|
logging.info("Applying puppet changes...")
|
|
subprocess.check_call(["./scripts/zulip-puppet-apply", "--force"])
|
|
subprocess.check_call(["apt-get", "upgrade"])
|
|
|
|
logging.info("Applying database migrations...")
|
|
subprocess.check_call(["./manage.py", "migrate"], preexec_fn=su_to_zulip)
|
|
|
|
logging.info("Restarting Zulip...")
|
|
subprocess.check_call(["cp", "-rT", os.path.join(deploy_path, 'prod-static/serve'),
|
|
'/home/zulip/prod-static'], preexec_fn=su_to_zulip)
|
|
subprocess.check_output(["./scripts/restart-server"], preexec_fn=su_to_zulip)
|