Source code for cgl.plugins.perforce.utils.environment

import os
import socket
import logging

from cgl.core.config.query import AlchemyConfigManager
from cgl.core.utils.general import cgl_execute
from cgl.plugins.perforce.utils.user import check_for_user, create_user


CFG = AlchemyConfigManager()


[docs] def check_peforce_connection(): cmd = "p4 info" result_ = cgl_execute(cmd, return_output=True) for line in result_["stdout"].splitlines(): if "Connect to server failed" in line: return False return True
[docs] def alchemy_perforce_startup(): if not check_perforce_environment_variables(): setup_perforce_environment_variables()
[docs] def check_perforce_environment_variables(): """ Ensures that the p4 environment is setup properly Returns: """ required_variables = ["P4PORT", "P4USER", "P4IGNORE"] current_env = get_perforce_env_variables() for var in required_variables: if var not in current_env: return False return True
[docs] def get_perforce_env_variables(): """ Gets all the p4 environmental variables currently set Returns: """ variable_list = [] cmd = "p4 set" output = cgl_execute(command=cmd, return_output=True) for line in output["stdout"].splitlines(): variable = line.split("=")[0] variable_list.append(variable) return variable_list
[docs] def setup_perforce_environment_variables(): """ Initial perforce setup for client computer to be able to connect to the server computer Args: company: project: Returns: None """ host_name = socket.gethostname() perforce_server = CFG.get_perforce_server() ignore_file = os.path.join( CFG.get_code_root(), "resources", "perforce", "perforce_ignore.txt" ) logging.info("Setting Up Perforce Environment") os.system("p4 set P4PORT={}".format(perforce_server)) os.system("p4 set P4HOST={}".format(host_name)) os.system("p4 set P4IGNORE={}".format(ignore_file)) os.system("p4 info") user_name = CFG.alc_user super_user = CFG.get_perforce_super_user() if not check_for_user(user_name): print(f"Creating Perforce User: {user_name}") create_user(user_name=user_name, super_user=super_user) os.system("p4 set P4USER={}".format(user_name))
if "__main__" == __name__: # set logging debug level logging.basicConfig(level=logging.DEBUG) setup_perforce_environment_variables()