summaryrefslogtreecommitdiff
path: root/buildbot/buildbot-source/contrib/viewcvspoll.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildbot/buildbot-source/contrib/viewcvspoll.py')
-rwxr-xr-xbuildbot/buildbot-source/contrib/viewcvspoll.py85
1 files changed, 0 insertions, 85 deletions
diff --git a/buildbot/buildbot-source/contrib/viewcvspoll.py b/buildbot/buildbot-source/contrib/viewcvspoll.py
deleted file mode 100755
index 3b2436a7a..000000000
--- a/buildbot/buildbot-source/contrib/viewcvspoll.py
+++ /dev/null
@@ -1,85 +0,0 @@
-#! /usr/bin/python
-
-"""Based on the fakechanges.py contrib script"""
-
-import sys
-from twisted.spread import pb
-from twisted.cred import credentials
-from twisted.internet import reactor, task
-from twisted.python import log
-import commands, random, os.path, time, MySQLdb
-
-class ViewCvsPoller:
-
- def __init__(self):
- def _load_rc():
- import user
- ret = {}
- for line in open(os.path.join(user.home,".cvsblamerc")).readlines():
- if line.find("=") != -1:
- key, val = line.split("=")
- ret[key.strip()] = val.strip()
- return ret
- # maybe add your own keys here db=xxx, user=xxx, passwd=xxx
- self.cvsdb = MySQLdb.connect("cvs", **_load_rc())
- #self.last_checkin = "2005-05-11" # for testing
- self.last_checkin = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())
-
- def get_changes(self):
- changes = []
-
- def empty_change():
- return {'who': None, 'files': [], 'comments': None }
- change = empty_change()
-
- cursor = self.cvsdb.cursor()
- cursor.execute("""SELECT whoid, descid, fileid, dirid, branchid, ci_when
- FROM checkins WHERE ci_when>='%s'""" % self.last_checkin)
- last_checkin = None
- for whoid, descid, fileid, dirid, branchid, ci_when in cursor.fetchall():
- if branchid != 1: # only head
- continue
- cursor.execute("""SELECT who from people where id=%s""" % whoid)
- who = cursor.fetchone()[0]
- cursor.execute("""SELECT description from descs where id=%s""" % descid)
- desc = cursor.fetchone()[0]
- cursor.execute("""SELECT file from files where id=%s""" % fileid)
- filename = cursor.fetchone()[0]
- cursor.execute("""SELECT dir from dirs where id=%s""" % dirid)
- dirname = cursor.fetchone()[0]
- if who == change["who"] and desc == change["comments"]:
- change["files"].append( "%s/%s" % (dirname, filename) )
- elif change["who"]:
- changes.append(change)
- change = empty_change()
- else:
- change["who"] = who
- change["files"].append( "%s/%s" % (dirname, filename) )
- change["comments"] = desc
- if last_checkin == None or ci_when > last_checkin:
- last_checkin = ci_when
- if last_checkin:
- self.last_checkin = last_checkin
- return changes
-
-poller = ViewCvsPoller()
-
-def error(*args):
- log.err()
- reactor.stop()
-
-def poll_changes(remote):
- print "GET CHANGES SINCE", poller.last_checkin,
- changes = poller.get_changes()
- for change in changes:
- print change["who"], "\n *", "\n * ".join(change["files"])
- remote.callRemote('addChange', change).addErrback(error)
- print
- reactor.callLater(60, poll_changes, remote)
-
-factory = pb.PBClientFactory()
-reactor.connectTCP("localhost", 9999, factory )
-deferred = factory.login(credentials.UsernamePassword("change", "changepw"))
-deferred.addCallback(poll_changes).addErrback(error)
-
-reactor.run()