| Index: third_party/twisted_8_1/twisted/conch/stdio.py
|
| diff --git a/third_party/twisted_8_1/twisted/conch/stdio.py b/third_party/twisted_8_1/twisted/conch/stdio.py
|
| deleted file mode 100644
|
| index b80c9b5f2bbf6423742520753b4ab86accddfca4..0000000000000000000000000000000000000000
|
| --- a/third_party/twisted_8_1/twisted/conch/stdio.py
|
| +++ /dev/null
|
| @@ -1,95 +0,0 @@
|
| -# -*- test-case-name: twisted.conch.test.test_manhole -*-
|
| -# Copyright (c) 2001-2007 Twisted Matrix Laboratories.
|
| -# See LICENSE for details.
|
| -
|
| -"""
|
| -Asynchronous local terminal input handling
|
| -
|
| -@author: U{Jp Calderone<mailto:exarkun@twistedmatrix.com>}
|
| -"""
|
| -
|
| -import os, tty, sys, termios
|
| -
|
| -from twisted.internet import reactor, stdio, protocol, defer
|
| -from twisted.python import failure, reflect, log
|
| -
|
| -from twisted.conch.insults.insults import ServerProtocol
|
| -from twisted.conch.manhole import ColoredManhole
|
| -
|
| -class UnexpectedOutputError(Exception):
|
| - pass
|
| -
|
| -class TerminalProcessProtocol(protocol.ProcessProtocol):
|
| - def __init__(self, proto):
|
| - self.proto = proto
|
| - self.onConnection = defer.Deferred()
|
| -
|
| - def connectionMade(self):
|
| - self.proto.makeConnection(self)
|
| - self.onConnection.callback(None)
|
| - self.onConnection = None
|
| -
|
| - def write(self, bytes):
|
| - self.transport.write(bytes)
|
| -
|
| - def outReceived(self, bytes):
|
| - self.proto.dataReceived(bytes)
|
| -
|
| - def errReceived(self, bytes):
|
| - self.transport.loseConnection()
|
| - if self.proto is not None:
|
| - self.proto.connectionLost(failure.Failure(UnexpectedOutputError(bytes)))
|
| - self.proto = None
|
| -
|
| - def childConnectionLost(self, childFD):
|
| - if self.proto is not None:
|
| - self.proto.childConnectionLost(childFD)
|
| -
|
| - def processEnded(self, reason):
|
| - if self.proto is not None:
|
| - self.proto.connectionLost(reason)
|
| - self.proto = None
|
| -
|
| -
|
| -
|
| -class ConsoleManhole(ColoredManhole):
|
| - """
|
| - A manhole protocol specifically for use with L{stdio.StandardIO}.
|
| - """
|
| - def connectionLost(self, reason):
|
| - """
|
| - When the connection is lost, there is nothing more to do. Stop the
|
| - reactor so that the process can exit.
|
| - """
|
| - reactor.stop()
|
| -
|
| -
|
| -
|
| -def runWithProtocol(klass):
|
| - fd = sys.__stdin__.fileno()
|
| - oldSettings = termios.tcgetattr(fd)
|
| - tty.setraw(fd)
|
| - try:
|
| - p = ServerProtocol(klass)
|
| - stdio.StandardIO(p)
|
| - reactor.run()
|
| - finally:
|
| - termios.tcsetattr(fd, termios.TCSANOW, oldSettings)
|
| - os.write(fd, "\r\x1bc\r")
|
| -
|
| -
|
| -
|
| -def main(argv=None):
|
| - log.startLogging(file('child.log', 'w'))
|
| -
|
| - if argv is None:
|
| - argv = sys.argv[1:]
|
| - if argv:
|
| - klass = reflect.namedClass(argv[0])
|
| - else:
|
| - klass = ConsoleManhole
|
| - runWithProtocol(klass)
|
| -
|
| -
|
| -if __name__ == '__main__':
|
| - main()
|
|
|