summaryrefslogtreecommitdiff
path: root/buildbot/buildbot-source/buildbot/changes/maildirtwisted.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildbot/buildbot-source/buildbot/changes/maildirtwisted.py')
-rw-r--r--buildbot/buildbot-source/buildbot/changes/maildirtwisted.py76
1 files changed, 0 insertions, 76 deletions
diff --git a/buildbot/buildbot-source/buildbot/changes/maildirtwisted.py b/buildbot/buildbot-source/buildbot/changes/maildirtwisted.py
deleted file mode 100644
index ec1bb98b9..000000000
--- a/buildbot/buildbot-source/buildbot/changes/maildirtwisted.py
+++ /dev/null
@@ -1,76 +0,0 @@
-#! /usr/bin/python
-
-# This is a class which watches a maildir for new messages. It uses the
-# linux dirwatcher API (if available) to look for new files. The
-# .messageReceived method is invoked with the filename of the new message,
-# relative to the top of the maildir (so it will look like "new/blahblah").
-
-# This version is implemented as a Twisted Python "Service". It uses the
-# twisted Reactor to handle polling and signal safety.
-
-from twisted.application import service
-from twisted.internet import reactor
-from maildir import Maildir
-
-class MaildirTwisted(Maildir, service.Service):
- timeout = None
-
- def startService(self):
- self.start()
- service.Service.startService(self)
- def stopService(self):
- self.stop()
- service.Service.stopService(self)
-
- def startTimeout(self):
- self.timeout = reactor.callLater(self.pollinterval, self.poll)
- def stopTimeout(self):
- if self.timeout:
- self.timeout.cancel()
- self.timeout = None
-
- def dnotify_callback(self):
- # make it safe
- #reactor.callFromThread(self.poll)
- reactor.callLater(1, self.poll)
- # give it a moment. I found that qmail had problems when the message
- # was removed from the maildir instantly. It shouldn't, that's what
- # maildirs are made for. I wasn't able to eyeball any reason for the
- # problem, and safecat didn't behave the same way, but qmail reports
- # "Temporary_error_on_maildir_delivery" (qmail-local.c:165,
- # maildir_child() process exited with rc not in 0,2,3,4). Not sure why,
- # would have to hack qmail to investigate further, easier to just
- # wait a second before yanking the message out of new/ .
-
-## def messageReceived(self, filename):
-## if self.callback:
-## self.callback(filename)
-
-class MaildirService(MaildirTwisted):
- """I watch a maildir for new messages. I should be placed as the service
- child of some MultiService instance. When running, I use the linux
- dirwatcher API (if available) or poll for new files in the 'new'
- subdirectory of my maildir path. When I discover a new message, I invoke
- my parent's .messageReceived() method with the short filename of the new
- message, so the full name of the new file can be obtained with
- os.path.join(maildir, 'new', filename). I will not move or delete the
- file on my own: the parent should do this in messageReceived().
- """
- def messageReceived(self, filename):
- self.parent.messageReceived(filename)
-
-
-def test1():
- class MaildirTest(MaildirTwisted):
- def messageReceived(self, filename):
- print "changed:", filename
- m = MaildirTest(basedir="ddir")
- print "watching ddir/new/"
- m.startService()
- reactor.run()
- print "done"
-
-if __name__ == '__main__':
- test1()
-
-