src/mercurialserver/paths.py
author Paul Crowley <paul@lshift.net>
Mon, 09 Nov 2009 12:15:09 +0000
changeset 165 3606d60b07e5
parent 79 3a58a95fae2f
permissions -rw-r--r--
Use .mercurial-sever file instead of hardcoding

# Copyright 2008-2009 LShift Ltd

import sys
import os.path
import mercurial.config

globalconfig = None

def _getConf():
    global globalconfig
    if globalconfig is None:
        globalconfig = mercurial.config.config()
        globalconfig.read(os.path.expanduser("~/.mercurial-server"))
    return globalconfig

def configExists():
    try:
        _getConf()
        return True
    except:
        return False

def _getPath(name):
    return os.path.expanduser(_getConf()["paths"][name])

def _getPaths(name): 
    return [os.path.expanduser(p)
        for p in _getConf()["paths"][name].split(":")]


def getExePath(): return _getPath("exe")
def getReposPath(): return _getPath("repos")

def getKeysPaths(): return _getPaths("keys")
def getAccessPaths(): return _getPaths("access")

# This goes into an env var, so pass it on verbatim.
def getHgrcPaths(): return _getConf()["paths"]["hgrc"]

# Work out where we are, don't use config.
def setExePath():
    global _exePath
    _exePath = os.path.dirname(os.path.abspath(sys.argv[0]))

def getExePath():
    return _exePath