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
This commit is contained in:
Sudip Bose 2023-09-20 02:12:15 +05:30 committed by Tim Abbott
parent 08bf7efeb8
commit ba4c45aa90
1 changed files with 10 additions and 2 deletions

View File

@ -93,8 +93,16 @@ def setup_shell_profile(shell_profile: str) -> None:
with open(shell_profile_path, "w") as shell_profile_file: with open(shell_profile_path, "w") as shell_profile_file:
shell_profile_file.writelines(command + "\n") shell_profile_file.writelines(command + "\n")
# 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") source_activate_command = "source " + os.path.join(VENV_PATH, "bin", "activate")
write_command(source_activate_command) write_command(source_activate_command)
if os.path.exists("/srv/zulip"): if os.path.exists("/srv/zulip"):
write_command("cd /srv/zulip") write_command("cd /srv/zulip")