6
sys.path.insert(0, os.path.dirname(__file__))
8
from paste.httpexceptions import HTTPExceptionHandler
9
from loggerhead.apps.transport import BranchesFromTransportRoot
10
from loggerhead.apps.error import ErrorHandlerApp
11
from loggerhead.config import LoggerheadConfig
12
from bzrlib import config as bzrconfig
13
from paste.deploy.config import PrefixMiddleware
14
from bzrlib.plugin import load_plugins
16
class NotConfiguredError(Exception):
21
config = LoggerheadConfig()
22
prefix = config.get_option('user_prefix') or ''
23
# Note we could use LoggerheadConfig here if it didn't fail when a
24
# config option is not also a commandline option
25
root_dir = bzrconfig.GlobalConfig().get_user_option('http_root_dir')
27
raise NotConfiguredError('You must have a ~/.bazaar/bazaar.conf file for'
28
' %(user)s with http_root_dir set to the base directory you want'
29
' to serve bazaar repositories from' %
30
{'user': pwd.getpwuid(os.geteuid()).pw_name})
31
prefix = prefix.encode('utf-8', 'ignore')
32
root_dir = root_dir.encode('utf-8', 'ignore')
33
app = BranchesFromTransportRoot(root_dir, config)
34
app = PrefixMiddleware(app, prefix=prefix)
35
app = HTTPExceptionHandler(app)
36
application = ErrorHandlerApp(app)