Prompt now uses Python readline feature without need of rlwrap

This commit is contained in:
nemunaire 2014-09-09 07:06:49 +02:00
parent 5f86b35cf0
commit 88219a773a
2 changed files with 8 additions and 9 deletions

View File

@ -18,6 +18,7 @@
import imp import imp
import os import os
import readline
import shlex import shlex
import sys import sys
import traceback import traceback
@ -81,14 +82,8 @@ class Prompt:
"""Launch the prompt""" """Launch the prompt"""
ret = "" ret = ""
while ret != "quit" and ret != "reset" and ret != "refresh": while ret != "quit" and ret != "reset" and ret != "refresh":
sys.stdout.write("\033[0;33m%s§\033[0m " % self.getPS1())
sys.stdout.flush()
try: try:
line = sys.stdin.readline() line = input("\033[0;33m%s§\033[0m " % self.getPS1())
if len(line) <= 0:
line = "quit"
print("quit")
cmds = self.lex_cmd(line.strip()) cmds = self.lex_cmd(line.strip())
for toks in cmds: for toks in cmds:
try: try:
@ -98,6 +93,9 @@ class Prompt:
traceback.print_exception(exc_type, exc_value, exc_traceback) traceback.print_exception(exc_type, exc_value, exc_traceback)
except KeyboardInterrupt: except KeyboardInterrupt:
print("") print("")
except EOFError:
ret = "quit"
print("quit")
return ret != "quit" return ret != "quit"

View File

@ -66,15 +66,16 @@ def load_file(filename, context):
or config.getName() == "nemubotconfig"): or config.getName() == "nemubotconfig"):
# Preset each server in this file # Preset each server in this file
for server in config.getNodes("server"): for server in config.getNodes("server"):
ip = server["ip"] if server.hasAttribute("ip") else config["ip"]
nick = server["nick"] if server.hasAttribute("nick") else config["nick"] nick = server["nick"] if server.hasAttribute("nick") else config["nick"]
owner = server["owner"] if server.hasAttribute("owner") else config["owner"] owner = server["owner"] if server.hasAttribute("owner") else config["owner"]
realname = server["realname"] if server.hasAttribute("realname") else config["realname"] realname = server["realname"] if server.hasAttribute("realname") else config["realname"]
if context.add_server(server, nick, owner, realname): if context.add_server(server, nick, owner, realname):
print("Server `%s:%s' successfully added." % print("Server `%s:%s' successfully added." %
(server["server"], server["port"])) (server["host"], server["port"]))
else: else:
print("Server `%s:%s' already added, skiped." % print("Server `%s:%s' already added, skiped." %
(server["server"], server["port"])) (server["host"], server["port"]))
# Load module and their configuration # Load module and their configuration
for mod in config.getNodes("module"): for mod in config.getNodes("module"):