From ba4c45aa90e9da9be30289742c4c204e1c981797 Mon Sep 17 00:00:00 2001 From: Sudip Bose Date: Wed, 20 Sep 2023 02:12:15 +0530 Subject: [PATCH] provision: enabling automatic activation of zulip-py3-venv at the lunch of shell only for dedicated containers. Refactor tools/lib/provision_inner to conditionally write activation commands to user's bash profile based on the host machine type. Automatic activation now skipped for native linux containers. Fixes #15029 --- tools/lib/provision_inner.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tools/lib/provision_inner.py b/tools/lib/provision_inner.py index da6520e99a..f77dac21a3 100755 --- a/tools/lib/provision_inner.py +++ b/tools/lib/provision_inner.py @@ -93,8 +93,16 @@ def setup_shell_profile(shell_profile: str) -> None: with open(shell_profile_path, "w") as shell_profile_file: shell_profile_file.writelines(command + "\n") - source_activate_command = "source " + os.path.join(VENV_PATH, "bin", "activate") - write_command(source_activate_command) + # Check if the environment is one of the dedicated containers: Vagrant, Docker, Droplet or WSL2 + WSL = os.path.exists("/proc/sys/fs/binfmt_misc/WSLInterop") + vagrant = os.path.exists("/vagrant") + docker = os.path.exists("/var/run/docker.sock") + droplet = os.path.exists("/etc/digitalocean") + # If the environment matches one of the containers, write the activation command to the user's bash profile + if WSL or vagrant or docker or droplet: + source_activate_command = "source " + os.path.join(VENV_PATH, "bin", "activate") + write_command(source_activate_command) + if os.path.exists("/srv/zulip"): write_command("cd /srv/zulip")