37
37
from bzrlib.api import require_any_api
39
require_any_api(bzrlib, [(1, 11, 0), (1, 13, 0)])
39
require_any_api(bzrlib, [(1, 11, 0), (1, 13, 0), (1, 15, 0)])
41
41
# TODO: This should provide a new type of server that can be used by bzr
42
42
# serve, maybe through a registry, rather than overriding the command. Though
71
71
import os.path, sys
72
72
sys.path.append(os.path.dirname(__file__))
74
from loggerhead.apps.filesystem import BranchesFromFileSystemRoot
74
from bzrlib.transport import get_transport
75
from loggerhead.apps.transport import BranchesFromTransportRoot
76
from loggerhead.config import LoggerheadConfig
75
77
from paste.httpexceptions import HTTPExceptionHandler
76
78
from paste.httpserver import serve
77
a = HTTPExceptionHandler(BranchesFromFileSystemRoot('.'))
79
path = kw.get('directory', '.')
78
80
port = kw.get('port', DEFAULT_PORT)
79
81
# port might be an int already...
80
82
if isinstance(port, basestring) and ':' in port:
81
83
host, port = port.split(':')
84
serve(a, host=host, port=port)
86
argv = ['--host', host, '--port', str(port), path]
87
config = LoggerheadConfig(argv)
88
transport = get_transport(path)
89
app = BranchesFromTransportRoot(transport, config)
90
app = HTTPExceptionHandler(app)
91
serve(app, host=host, port=port)
86
93
super(cmd_serve, self).run(*args, **kw)