1import os 2import re 3try: 4 import ConfigParser 5except: 6 import configparser as ConfigParser 7 8# pythonbrew version 9VERSION = "1.3" 10 11# pythonbrew installer root path 12INSTALLER_ROOT = os.path.dirname(os.path.abspath(__file__)) 13 14# Root 15# pythonbrew root path 16ROOT = os.environ.get("PYTHONBREW_ROOT") 17if not ROOT: 18 ROOT = os.path.join(os.environ["HOME"],".pythonbrew") 19 20# directories 21PATH_PYTHONS = os.path.join(ROOT,"pythons") 22PATH_BUILD = os.path.join(ROOT,"build") 23PATH_DISTS = os.path.join(ROOT,"dists") 24PATH_ETC = os.path.join(ROOT,"etc") 25PATH_BIN = os.path.join(ROOT,"bin") 26PATH_LOG = os.path.join(ROOT,"log") 27PATH_VENVS = os.path.join(ROOT, "venvs") 28PATH_SCRIPTS = os.path.join(ROOT,"scripts") 29PATH_SCRIPTS_PYTHONBREW = os.path.join(PATH_SCRIPTS,"pythonbrew") 30PATH_SCRIPTS_PYTHONBREW_COMMANDS = os.path.join(PATH_SCRIPTS_PYTHONBREW,"commands") 31PATH_SCRIPTS_PYTHONBREW_INSTALLER = os.path.join(PATH_SCRIPTS_PYTHONBREW,"installer") 32PATH_PATCHES = os.path.join(ROOT,"patches") 33PATH_PATCHES_ALL = os.path.join(PATH_PATCHES,"all") 34PATH_PATCHES_MACOSX = os.path.join(PATH_PATCHES,"macosx") 35PATH_PATCHES_MACOSX_PYTHON27 = os.path.join(PATH_PATCHES_MACOSX,"python27") 36PATH_PATCHES_MACOSX_PYTHON26 = os.path.join(PATH_PATCHES_MACOSX,"python26") 37PATH_PATCHES_MACOSX_PYTHON25 = os.path.join(PATH_PATCHES_MACOSX,"python25") 38PATH_PATCHES_MACOSX_PYTHON24 = os.path.join(PATH_PATCHES_MACOSX,"python24") 39 40# files 41PATH_BIN_PYTHONBREW = os.path.join(PATH_BIN,'pythonbrew') 42PATH_ETC_CONFIG = os.path.join(PATH_ETC,'config.cfg') 43 44# Home 45# pythonbrew home path 46PATH_HOME = os.environ.get('PYTHONBREW_HOME') 47if not PATH_HOME: 48 PATH_HOME = os.path.join(os.environ["HOME"],".pythonbrew") 49 50# directories 51PATH_HOME_ETC = os.path.join(PATH_HOME, 'etc') 52 53# files 54PATH_HOME_ETC_VENV = os.path.join(PATH_HOME_ETC, 'venv.run') 55PATH_HOME_ETC_CURRENT = os.path.join(PATH_HOME_ETC,'current') 56PATH_HOME_ETC_TEMP = os.path.join(PATH_HOME_ETC,'temp') 57 58# read config.cfg 59config = ConfigParser.SafeConfigParser() 60config.read([PATH_ETC_CONFIG, os.path.join(INSTALLER_ROOT,'etc','config.cfg')]) 61def _get_or_default(section, option, default=''): 62 try: 63 return config.get(section, option) 64 except: 65 return default 66 67# setuptools download 68DISTRIBUTE_SETUP_DLSITE = _get_or_default('distribute', 'url') 69 70# buildout bootstrap download 71BOOTSTRAP_DLSITE = _get_or_default('bootstrap', 'url') 72 73# virtualenv download 74VIRTUALENV_DLSITE = _get_or_default('virtualenv', 'url') 75 76# pythonbrew download 77PYTHONBREW_UPDATE_URL_MASTER = _get_or_default('pythonbrew', 'master') 78PYTHONBREW_UPDATE_URL_DEVELOP = _get_or_default('pythonbrew', 'develop') 79PYTHONBREW_UPDATE_URL_PYPI = _get_or_default('pythonbrew', 'pypi') 80PYTHONBREW_UPDATE_URL_CONFIG = _get_or_default('pythonbrew', 'config') 81 82# stable version text 83PYTHONBREW_STABLE_VERSION_URL = _get_or_default('pythonbrew', 'stable-version') 84 85# python download 86LATEST_VERSIONS_OF_PYTHON = [] 87PYTHON_VERSION_URL = {} 88PYTHON_VERSION_URL["1.5.2"] = _get_or_default('Python-1.5.2', 'url') 89PYTHON_VERSION_URL["1.6.1"] = _get_or_default('Python-1.6.1', 'url') 90for section in sorted(config.sections()): 91 m = re.search("^Python-(.*)$", section) 92 if m: 93 version = m.group(1) 94 PYTHON_VERSION_URL[version] = config.get(section, 'url') 95 if config.has_option(section, 'latest') and config.getboolean(section, 'latest'): 96 LATEST_VERSIONS_OF_PYTHON.append(version) 97