forked from wuub/SublimeREPL
-
Notifications
You must be signed in to change notification settings - Fork 0
/
telnet_repl.py
41 lines (33 loc) · 1.52 KB
/
telnet_repl.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# -*- coding: utf-8 -*-
# Copyright (c) 2011, Wojciech Bederski (wuub.net)
# All rights reserved.
# See LICENSE.txt for details.
import telnetlib
import repl
class TelnetRepl(repl.Repl):
TYPE = "telnet"
def __init__(self, encoding, external_id=None, host="localhost", port=23, cmd_postfix="\n", suppress_echo=False):
"""Create new TelnetRepl with the following initial values:
encoding: one of python accepted encoding used to encode commands and decode responses
external_id: external, persisten name of this repl used to find it later
host: telnet host to connect to
port: telnet port to connect to
cmd_postfix: some REPLS require you to end a command with a postfix to begin execution,
think ';' or '.', you can force repl to add it automatically"""
super(TelnetRepl, self).__init__(encoding, external_id, cmd_postfix, suppress_echo)
self._telnet = telnetlib.Telnet()
#convert to int for user's sake, we don't care if it's an float or string
# as long as it can be turned into an INT
self._telnet.open(host, int(port))
self._alive = True
def name(self):
return "%s:%s" % (self._telnet.host, self._telnet.port)
def is_alive(self):
return self._alive
def read_bytes(self):
return self._telnet.read_some()
def write_bytes(self, bytes):
self._telnet.write(bytes)
def kill(self):
self._telnet.close()
self._alive = False