#! /usr/bin/python

from buildbot import master
from buildbot.buildslave import BuildSlave
from buildbot.process import factory
from buildbot.steps.source import CVS, SVN, Darcs
from buildbot.steps.shell import Configure, Compile, Test
from buildbot.status import html, client
from buildbot.changes.pb import PBChangeSource

BuildmasterConfig = c = {}

c['slaves'] = [BuildSlave("bot1", "sekrit")]

c['change_source'] = PBChangeSource(prefix="trunk")
c['builders'] = []

if True:
    f = factory.BuildFactory()
    f.addStep(CVS(cvsroot="/usr/home/warner/stuff/Projects/BuildBot/demo/Repository",
                  cvsmodule="hello",
                  mode="clobber",
                  checkoutDelay=6,
                  alwaysUseLatest=True,
                  ))
    f.addStep(Configure())
    f.addStep(Compile())
    f.addStep(Test(command=["make", "check"]))
    b1 = {"name": "cvs-hello",
          "slavename": "bot1",
          "builddir": "cvs-hello",
          "factory": f,
          }
    c['builders'].append(b1)

if True:
    svnrep="file:///usr/home/warner/stuff/Projects/BuildBot/demo/SVN-Repository"
    f = factory.BuildFactory()
    f.addStep(SVN(svnurl=svnrep+"/hello", mode="update"))
    f.addStep(Configure())
    f.addStep(Compile()),
    f.addStep(Test(command=["make", "check"]))
    b1 = {"name": "svn-hello",
          "slavename": "bot1",
          "builddir": "svn-hello",
          "factory": f,
          }
    c['builders'].append(b1)

if True:
    f = factory.BuildFactory()
    f.addStep(Darcs(repourl="http://localhost/~warner/hello-darcs",
                    mode="copy"))
    f.addStep(Configure(command=["/bin/sh", "./configure"]))
    f.addStep(Compile())
    f.addStep(Test(command=["make", "check"]))
    b1 = {"name": "darcs-hello",
          "slavename": "bot1",
          "builddir": "darcs-hello",
          "factory": f,
          }
    c['builders'].append(b1)

c['projectName'] = "Hello"
c['projectURL'] = "http://www.hello.example.com"
c['buildbotURL'] = "http://localhost:8080"

c['slavePortnum'] = 8007
c['debugPassword'] = "asdf"
c['manhole'] = master.Manhole(9900, "username", "password")

c['status'] = [html.WebStatus(http_port=8080),
               client.PBListener(port=8008),
               ]

