Source code for tank.util.environment

# Copyright (c) 2013 Shotgun Software Inc.
#
# CONFIDENTIAL AND PROPRIETARY
#
# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit
# Source Code License included in this distribution package. See LICENSE.
# By accessing, using, copying or modifying this work you indicate your
# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights
# not expressly granted therein are reserved by Shotgun Software Inc.

"""
Helper methods that do environment management
"""

import os
from .platforms import is_windows


[docs]def append_path_to_env_var(env_var_name, path): """ Append the path to the given environment variable. Creates the env var if it doesn't exist already. will concatenate paths using : on linux and ; on windows """ return _add_path_to_env_var(env_var_name, path, prepend=False)
[docs]def prepend_path_to_env_var(env_var_name, path): """ Prepend the path to the given environment variable. Creates the env var if it doesn't exist already. will concatenate paths using : on linux and ; on windows """ return _add_path_to_env_var(env_var_name, path, prepend=True)
def _add_path_to_env_var(env_var_name, path, prepend=False): """ Append or prepend the path to the given environment variable. Creates the env var if it doesn't exist already. will concatenate paths using : on linux and ; on windows """ if is_windows(): env_var_sep = ";" else: env_var_sep = ":" paths = os.environ.get(env_var_name, "").split(env_var_sep) # clean up empty entries paths = [x for x in paths if x != ""] # Do not add path if it already exists in the list if path not in paths: if prepend: paths.insert(0, path) else: paths.append(path) # and put it back os.environ[env_var_name] = env_var_sep.join(paths)