Python tty.TIOCGWINSZ Examples
The following are 15
code examples of tty.TIOCGWINSZ().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
tty
, or try the search function
.
Example #1
Source File: test_cftp.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def setKnownConsoleSize(self, width, height): """ For the duration of this test, patch C{cftp}'s C{fcntl} module to return a fixed width and height. @param width: the width in characters @type width: L{int} @param height: the height in characters @type height: L{int} """ # Local import to avoid win32 issues. import tty class FakeFcntl(object): def ioctl(self, fd, opt, mutate): if opt != tty.TIOCGWINSZ: self.fail("Only window-size queries supported.") return struct.pack("4H", height, width, 0, 0) self.patch(cftp, "fcntl", FakeFcntl())
Example #2
Source File: test_cftp.py From learn_python3_spider with MIT License | 6 votes |
def setKnownConsoleSize(self, width, height): """ For the duration of this test, patch C{cftp}'s C{fcntl} module to return a fixed width and height. @param width: the width in characters @type width: L{int} @param height: the height in characters @type height: L{int} """ # Local import to avoid win32 issues. import tty class FakeFcntl(object): def ioctl(self, fd, opt, mutate): if opt != tty.TIOCGWINSZ: self.fail("Only window-size queries supported.") return struct.pack("4H", height, width, 0, 0) self.patch(cftp, "fcntl", FakeFcntl())
Example #3
Source File: cftp.py From BitTorrent with GNU General Public License v3.0 | 6 votes |
def _printProgessBar(self, f, startTime): diff = time.time() - startTime total = f.total try: winSize = struct.unpack('4H', fcntl.ioctl(0, tty.TIOCGWINSZ, '12345679')) except IOError: winSize = [None, 80] speed = total/diff if speed: timeLeft = (f.size - total) / speed else: timeLeft = 0 front = f.name back = '%3i%% %s %sps %s ' % ((total/f.size)*100, self._abbrevSize(total), self._abbrevSize(total/diff), self._abbrevTime(timeLeft)) spaces = (winSize[1] - (len(front) + len(back) + 1)) * ' ' self.transport.write('\r%s%s%s' % (front, spaces, back))
Example #4
Source File: cftp.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def _printProgressBar(self, f, startTime): """ Update a console progress bar on this L{StdioClient}'s transport, based on the difference between the start time of the operation and the current time according to the reactor, and appropriate to the size of the console window. @param f: a wrapper around the file which is being written or read @type f: L{FileWrapper} @param startTime: The time at which the operation being tracked began. @type startTime: L{float} """ diff = self.reactor.seconds() - startTime total = f.total try: winSize = struct.unpack('4H', fcntl.ioctl(0, tty.TIOCGWINSZ, '12345679')) except IOError: winSize = [None, 80] if diff == 0.0: speed = 0.0 else: speed = total / diff if speed: timeLeft = (f.size - total) / speed else: timeLeft = 0 front = f.name if f.size: percentage = (total / f.size) * 100 else: percentage = 100 back = '%3i%% %s %sps %s ' % (percentage, self._abbrevSize(total), self._abbrevSize(speed), self._abbrevTime(timeLeft)) spaces = (winSize[1] - (len(front) + len(back) + 1)) * ' ' command = '\r%s%s%s' % (front, spaces, back) self._writeToTransport(command)
Example #5
Source File: conch.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def channelOpen(self, foo): log.msg('session %s open' % self.id) if options['agent']: d = self.conn.sendRequest(self, b'auth-agent-req@openssh.com', b'', wantReply=1) d.addBoth(lambda x:log.msg(x)) if options['noshell']: return if (options['command'] and options['tty']) or not options['notty']: _enterRawMode() c = session.SSHSessionClient() if options['escape'] and not options['notty']: self.escapeMode = 1 c.dataReceived = self.handleInput else: c.dataReceived = self.write c.connectionLost = lambda x=None,s=self:s.sendEOF() self.stdio = stdio.StandardIO(c) fd = 0 if options['subsystem']: self.conn.sendRequest(self, b'subsystem', \ common.NS(options['command'])) elif options['command']: if options['tty']: term = os.environ['TERM'] winsz = fcntl.ioctl(fd, tty.TIOCGWINSZ, '12345678') winSize = struct.unpack('4H', winsz) ptyReqData = session.packRequest_pty_req(term, winSize, '') self.conn.sendRequest(self, b'pty-req', ptyReqData) signal.signal(signal.SIGWINCH, self._windowResized) self.conn.sendRequest(self, b'exec', \ common.NS(options['command'])) else: if not options['notty']: term = os.environ['TERM'] winsz = fcntl.ioctl(fd, tty.TIOCGWINSZ, '12345678') winSize = struct.unpack('4H', winsz) ptyReqData = session.packRequest_pty_req(term, winSize, '') self.conn.sendRequest(self, b'pty-req', ptyReqData) signal.signal(signal.SIGWINCH, self._windowResized) self.conn.sendRequest(self, b'shell', b'') #if hasattr(conn.transport, 'transport'): # conn.transport.transport.setTcpNoDelay(1)
Example #6
Source File: conch.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def _windowResized(self, *args): winsz = fcntl.ioctl(0, tty.TIOCGWINSZ, '12345678') winSize = struct.unpack('4H', winsz) newSize = winSize[1], winSize[0], winSize[2], winSize[3] self.conn.sendRequest(self, b'window-change', struct.pack('!4L', *newSize))
Example #7
Source File: cftp.py From learn_python3_spider with MIT License | 5 votes |
def _printProgressBar(self, f, startTime): """ Update a console progress bar on this L{StdioClient}'s transport, based on the difference between the start time of the operation and the current time according to the reactor, and appropriate to the size of the console window. @param f: a wrapper around the file which is being written or read @type f: L{FileWrapper} @param startTime: The time at which the operation being tracked began. @type startTime: L{float} """ diff = self.reactor.seconds() - startTime total = f.total try: winSize = struct.unpack('4H', fcntl.ioctl(0, tty.TIOCGWINSZ, '12345679')) except IOError: winSize = [None, 80] if diff == 0.0: speed = 0.0 else: speed = total / diff if speed: timeLeft = (f.size - total) / speed else: timeLeft = 0 front = f.name if f.size: percentage = (total / f.size) * 100 else: percentage = 100 back = '%3i%% %s %sps %s ' % (percentage, self._abbrevSize(total), self._abbrevSize(speed), self._abbrevTime(timeLeft)) spaces = (winSize[1] - (len(front) + len(back) + 1)) * ' ' command = '\r%s%s%s' % (front, spaces, back) self._writeToTransport(command)
Example #8
Source File: conch.py From learn_python3_spider with MIT License | 5 votes |
def _windowResized(self, *args): winsz = fcntl.ioctl(0, tty.TIOCGWINSZ, '12345678') winSize = struct.unpack('4H', winsz) newSize = winSize[1], winSize[0], winSize[2], winSize[3] self.conn.sendRequest(self, b'window-change', struct.pack('!4L', *newSize))
Example #9
Source File: cftp.py From python-for-android with Apache License 2.0 | 5 votes |
def _printProgressBar(self, f, startTime): """ Update a console progress bar on this L{StdioClient}'s transport, based on the difference between the start time of the operation and the current time according to the reactor, and appropriate to the size of the console window. @param f: a wrapper around the file which is being written or read @type f: L{FileWrapper} @param startTime: The time at which the operation being tracked began. @type startTime: C{float} """ diff = self.reactor.seconds() - startTime total = f.total try: winSize = struct.unpack('4H', fcntl.ioctl(0, tty.TIOCGWINSZ, '12345679')) except IOError: winSize = [None, 80] if diff == 0.0: speed = 0.0 else: speed = total / diff if speed: timeLeft = (f.size - total) / speed else: timeLeft = 0 front = f.name back = '%3i%% %s %sps %s ' % ((total / f.size) * 100, self._abbrevSize(total), self._abbrevSize(speed), self._abbrevTime(timeLeft)) spaces = (winSize[1] - (len(front) + len(back) + 1)) * ' ' self.transport.write('\r%s%s%s' % (front, spaces, back))
Example #10
Source File: conch.py From python-for-android with Apache License 2.0 | 5 votes |
def channelOpen(self, foo): log.msg('session %s open' % self.id) if options['agent']: d = self.conn.sendRequest(self, 'auth-agent-req@openssh.com', '', wantReply=1) d.addBoth(lambda x:log.msg(x)) if options['noshell']: return if (options['command'] and options['tty']) or not options['notty']: _enterRawMode() c = session.SSHSessionClient() if options['escape'] and not options['notty']: self.escapeMode = 1 c.dataReceived = self.handleInput else: c.dataReceived = self.write c.connectionLost = lambda x=None,s=self:s.sendEOF() self.stdio = stdio.StandardIO(c) fd = 0 if options['subsystem']: self.conn.sendRequest(self, 'subsystem', \ common.NS(options['command'])) elif options['command']: if options['tty']: term = os.environ['TERM'] winsz = fcntl.ioctl(fd, tty.TIOCGWINSZ, '12345678') winSize = struct.unpack('4H', winsz) ptyReqData = session.packRequest_pty_req(term, winSize, '') self.conn.sendRequest(self, 'pty-req', ptyReqData) signal.signal(signal.SIGWINCH, self._windowResized) self.conn.sendRequest(self, 'exec', \ common.NS(options['command'])) else: if not options['notty']: term = os.environ['TERM'] winsz = fcntl.ioctl(fd, tty.TIOCGWINSZ, '12345678') winSize = struct.unpack('4H', winsz) ptyReqData = session.packRequest_pty_req(term, winSize, '') self.conn.sendRequest(self, 'pty-req', ptyReqData) signal.signal(signal.SIGWINCH, self._windowResized) self.conn.sendRequest(self, 'shell', '') #if hasattr(conn.transport, 'transport'): # conn.transport.transport.setTcpNoDelay(1)
Example #11
Source File: conch.py From python-for-android with Apache License 2.0 | 5 votes |
def _windowResized(self, *args): winsz = fcntl.ioctl(0, tty.TIOCGWINSZ, '12345678') winSize = struct.unpack('4H', winsz) newSize = winSize[1], winSize[0], winSize[2], winSize[3] self.conn.sendRequest(self, 'window-change', struct.pack('!4L', *newSize))
Example #12
Source File: conch.py From BitTorrent with GNU General Public License v3.0 | 5 votes |
def channelOpen(self, foo): log.msg('session %s open' % self.id) if options['agent']: d = self.conn.sendRequest(self, 'auth-agent-req@openssh.com', '', wantReply=1) d.addBoth(lambda x:log.msg(x)) if options['noshell']: return if (options['command'] and options['tty']) or not options['notty']: _enterRawMode() c = session.SSHSessionClient() if options['escape'] and not options['notty']: self.escapeMode = 1 c.dataReceived = self.handleInput else: c.dataReceived = self.write c.connectionLost = lambda x=None,s=self:s.sendEOF() self.stdio = stdio.StandardIO(c) fd = 0 if options['subsystem']: self.conn.sendRequest(self, 'subsystem', \ common.NS(options['command'])) elif options['command']: if options['tty']: term = os.environ['TERM'] winsz = fcntl.ioctl(fd, tty.TIOCGWINSZ, '12345678') winSize = struct.unpack('4H', winsz) ptyReqData = session.packRequest_pty_req(term, winSize, '') self.conn.sendRequest(self, 'pty-req', ptyReqData) signal.signal(signal.SIGWINCH, self._windowResized) self.conn.sendRequest(self, 'exec', \ common.NS(options['command'])) else: if not options['notty']: term = os.environ['TERM'] winsz = fcntl.ioctl(fd, tty.TIOCGWINSZ, '12345678') winSize = struct.unpack('4H', winsz) ptyReqData = session.packRequest_pty_req(term, winSize, '') self.conn.sendRequest(self, 'pty-req', ptyReqData) signal.signal(signal.SIGWINCH, self._windowResized) self.conn.sendRequest(self, 'shell', '') #if hasattr(conn.transport, 'transport'): # conn.transport.transport.setTcpNoDelay(1)
Example #13
Source File: conch.py From BitTorrent with GNU General Public License v3.0 | 5 votes |
def _windowResized(self, *args): winsz = fcntl.ioctl(0, tty.TIOCGWINSZ, '12345678') winSize = struct.unpack('4H', winsz) newSize = winSize[1], winSize[0], winSize[2], winSize[3] self.conn.sendRequest(self, 'window-change', struct.pack('!4L', *newSize))
Example #14
Source File: __main__.py From imaginary with MIT License | 5 votes |
def getTerminalSize(terminalFD): """ Get the height and width of the terminal, in characters. @param terminalFD: The file descriptor of the terminal to inspect. @type terminalFD: L{int} """ winsz = fcntl.ioctl(terminalFD, tty.TIOCGWINSZ, b'12345678') winSize = struct.unpack( b'4H', winsz ) ws_row, ws_col, ws_xpixel, ws_ypixel = winSize return ws_row, ws_col
Example #15
Source File: conch.py From learn_python3_spider with MIT License | 4 votes |
def channelOpen(self, foo): log.msg('session {} open'.format(self.id)) if options['agent']: d = self.conn.sendRequest(self, b'auth-agent-req@openssh.com', b'', wantReply=1) d.addBoth(lambda x: log.msg(x)) if options['noshell']: return if (options['command'] and options['tty']) or not options['notty']: _enterRawMode() c = session.SSHSessionClient() if options['escape'] and not options['notty']: self.escapeMode = 1 c.dataReceived = self.handleInput else: c.dataReceived = self.write c.connectionLost = lambda x: self.sendEOF() self.stdio = stdio.StandardIO(c) fd = 0 if options['subsystem']: self.conn.sendRequest(self, b'subsystem', common.NS(options['command'])) elif options['command']: if options['tty']: term = os.environ['TERM'] winsz = fcntl.ioctl(fd, tty.TIOCGWINSZ, '12345678') winSize = struct.unpack('4H', winsz) ptyReqData = session.packRequest_pty_req(term, winSize, '') self.conn.sendRequest(self, b'pty-req', ptyReqData) signal.signal(signal.SIGWINCH, self._windowResized) self.conn.sendRequest(self, b'exec', common.NS(options['command'])) else: if not options['notty']: term = os.environ['TERM'] winsz = fcntl.ioctl(fd, tty.TIOCGWINSZ, '12345678') winSize = struct.unpack('4H', winsz) ptyReqData = session.packRequest_pty_req(term, winSize, '') self.conn.sendRequest(self, b'pty-req', ptyReqData) signal.signal(signal.SIGWINCH, self._windowResized) self.conn.sendRequest(self, b'shell', b'') #if hasattr(conn.transport, 'transport'): # conn.transport.transport.setTcpNoDelay(1)