#!/usr/bin/python
# dul-web - HTTP-based git server
# Copyright (C) 2010 David Borowitz <dborowitz@google.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; version 2
# or (at your option) a later version of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA  02110-1301, USA.

import os
import sys
from dulwich.repo import Repo
from dulwich.server import DictBackend
from dulwich.web import HTTPGitApplication
from wsgiref.simple_server import make_server

if __name__ == "__main__":
    if len(sys.argv) > 1:
        gitdir = sys.argv[1]
    else:
        gitdir = os.getcwd()

    backend = DictBackend({"/": Repo(gitdir)})
    app = HTTPGitApplication(backend)
    # TODO: allow serving on other ports via command-line flag
    server = make_server('', 8000, app)
    server.serve_forever()
