made urlish the gui command in lish
This commit is contained in:
parent
2109e0f81e
commit
b869053aec
3 changed files with 55 additions and 53 deletions
|
|
@ -34,6 +34,7 @@ from linspector.config.parser import FullConfigParser
|
|||
from linspector.core.interface import LinspectorInterface
|
||||
from linspector.core.job import Job
|
||||
from linspector.core.scheduler import Scheduler
|
||||
from linspector.frontends.lish import LishFrontend
|
||||
from linspector.tasks.task import TaskExecutor
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
|
@ -167,15 +168,6 @@ def main():
|
|||
jsonrpc.daemon = True
|
||||
jsonrpc.start()
|
||||
|
||||
frontend = None
|
||||
if "frontend" in core and core["frontend"]:
|
||||
frontend = core["frontend"]
|
||||
|
||||
if frontend == "urlish":
|
||||
from linspector.frontends.urlish import UrlishFrontend
|
||||
UrlishFrontend(interface)
|
||||
else:
|
||||
from linspector.frontends.lish import LishFrontend
|
||||
LishFrontend(interface)
|
||||
|
||||
print("Shutting down... please wait!")
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ from shlex import split as shsplit
|
|||
|
||||
from linspector.frontends.frontend import Frontend
|
||||
|
||||
__version__ = "0.2.3-alpha"
|
||||
__version__ = "0.3"
|
||||
|
||||
PURPLE = "\033[95m"
|
||||
BLUE = "\033[94m"
|
||||
|
|
@ -174,7 +174,6 @@ class Command(Cmd, object):
|
|||
if len(line) > 0 and line[0] in [child.alias for child in self.get_children()]:
|
||||
pass
|
||||
|
||||
|
||||
def completenames(self, text, *ignored):
|
||||
ret = super(Command, self).completenames(text, *ignored)
|
||||
if len(self.get_children()) > 0:
|
||||
|
|
@ -200,11 +199,11 @@ class CommandTree(object):
|
|||
|
||||
|
||||
class LishCommander(Exit):
|
||||
def __init__(self, linspectorInterface):
|
||||
def __init__(self, linspector_interface):
|
||||
super(LishCommander, self).__init__()
|
||||
|
||||
self.prompt = BLUE + "<Lish@" + socket.gethostname() + ">: " + END
|
||||
self.interface = linspectorInterface
|
||||
self.interface = linspector_interface
|
||||
|
||||
def do_python(self, text):
|
||||
exec text
|
||||
|
|
@ -289,6 +288,20 @@ Usage:
|
|||
list Lists all jobs
|
||||
''')
|
||||
|
||||
def do_gui(self, text):
|
||||
try:
|
||||
from linspector.frontends.lishgui import LishGui
|
||||
gui = LishGui(self.interface)
|
||||
gui.run()
|
||||
except Exception, err:
|
||||
self.print_color(RED, "Error: " + str(err) + ", no GUI support!")
|
||||
|
||||
def help_gui(self):
|
||||
print('''
|
||||
Usage:
|
||||
gui start the graphical user interface
|
||||
''')
|
||||
|
||||
def do_host(self, text):
|
||||
pass
|
||||
|
||||
|
|
|
|||
|
|
@ -49,10 +49,6 @@ import urwid
|
|||
|
||||
from logging import getLogger
|
||||
|
||||
from linspector.frontends.frontend import Frontend
|
||||
|
||||
__version__ = "0.1.2"
|
||||
|
||||
logger = getLogger(__name__)
|
||||
|
||||
|
||||
|
|
@ -101,7 +97,7 @@ class CommandPrompt(urwid.Edit):
|
|||
|
||||
elif command[0] in ('version', 'v'):
|
||||
self.clear()
|
||||
status_bar.set_text(" Linspector " + str(interface.get_version()) + ", urlish " + __version__)
|
||||
status_bar.set_text(" Linspector " + str(interface.get_version()))
|
||||
main_frame.set_focus('body')
|
||||
|
||||
else:
|
||||
|
|
@ -233,59 +229,9 @@ class RootParentNode(urwid.ParentNode):
|
|||
return childclass(childdata, parent=self, key=key, depth=childdepth)
|
||||
|
||||
|
||||
class UrlishFrontend(Frontend):
|
||||
class LishGui():
|
||||
def __init__(self, linspector_interface):
|
||||
super(UrlishFrontend, self)
|
||||
|
||||
global job_list_box
|
||||
global command_prompt
|
||||
global header_bar
|
||||
global status_bar
|
||||
global main_frame
|
||||
global loop
|
||||
global interface
|
||||
|
||||
palette = [('body', 'white', 'black'),
|
||||
('foot_bar', 'white', 'black'),
|
||||
('top', 'white', 'dark red'),
|
||||
('status', 'white', 'dark blue'),
|
||||
('prompt', 'white', 'black')]
|
||||
|
||||
foot_text = [('title', "Navigation:"), " ",
|
||||
('key', "UP"), ",", ('key', "DOWN"), ",",
|
||||
('key', "PAGE UP"), ",", ('key', "PAGE DOWN"),
|
||||
" ",
|
||||
('key', "+"), ",",
|
||||
('key', "-"), " ",
|
||||
('key', "LEFT"), " ",
|
||||
('key', "HOME"), " ",
|
||||
('key', "END")]
|
||||
|
||||
interface = linspector_interface
|
||||
|
||||
top_node = RootParentNode(get_example_tree())
|
||||
job_list_box = urwid.TreeListBox(urwid.TreeWalker(top_node))
|
||||
job_list_box.offset_rows = 1
|
||||
|
||||
header_message = ' Linspector (' + str(linspector_interface.get_version()) + ')'
|
||||
header_bar = urwid.Text(header_message, align='left')
|
||||
header = urwid.Pile([urwid.AttrMap(header_bar, 'top')])
|
||||
|
||||
command_prompt = CommandPrompt()
|
||||
|
||||
foot_bar = urwid.Text(foot_text, align='left')
|
||||
|
||||
welcome_message = ' Type ":h <Enter>" for help, ":q <Enter>" to quit'
|
||||
status_bar = urwid.Text(welcome_message, align='left')
|
||||
footer = urwid.Pile([urwid.AttrMap(foot_bar, 'foot_bar'),
|
||||
urwid.AttrMap(status_bar, 'status'),
|
||||
urwid.AttrMap(command_prompt, 'prompt')])
|
||||
|
||||
main_frame = urwid.Frame(body=job_list_box, header=header, footer=footer)
|
||||
|
||||
loop = urwid.MainLoop(main_frame, palette, unhandled_input=self.unhandled_input, handle_mouse=False)
|
||||
loop.set_alarm_in(0, update)
|
||||
loop.run()
|
||||
self.interface = linspector_interface
|
||||
|
||||
@staticmethod
|
||||
def unhandled_input(key):
|
||||
|
|
@ -317,6 +263,57 @@ class UrlishFrontend(Frontend):
|
|||
#expand all nodes
|
||||
pass
|
||||
|
||||
def run(self):
|
||||
global job_list_box
|
||||
global command_prompt
|
||||
global header_bar
|
||||
global status_bar
|
||||
global main_frame
|
||||
global loop
|
||||
global interface
|
||||
|
||||
palette = [('body', 'white', 'black'),
|
||||
('foot_bar', 'white', 'black'),
|
||||
('top', 'white', 'dark red'),
|
||||
('status', 'white', 'dark blue'),
|
||||
('prompt', 'white', 'black')]
|
||||
|
||||
foot_text = [('title', "Navigation:"), " ",
|
||||
('key', "UP"), ",", ('key', "DOWN"), ",",
|
||||
('key', "PAGE UP"), ",", ('key', "PAGE DOWN"),
|
||||
" ",
|
||||
('key', "+"), ",",
|
||||
('key', "-"), " ",
|
||||
('key', "LEFT"), " ",
|
||||
('key', "HOME"), " ",
|
||||
('key', "END")]
|
||||
|
||||
interface = self.interface
|
||||
|
||||
top_node = RootParentNode(get_example_tree())
|
||||
job_list_box = urwid.TreeListBox(urwid.TreeWalker(top_node))
|
||||
job_list_box.offset_rows = 1
|
||||
|
||||
header_message = ' Linspector (' + str(self.interface.get_version()) + ')'
|
||||
header_bar = urwid.Text(header_message, align='left')
|
||||
header = urwid.Pile([urwid.AttrMap(header_bar, 'top')])
|
||||
|
||||
command_prompt = CommandPrompt()
|
||||
|
||||
foot_bar = urwid.Text(foot_text, align='left')
|
||||
|
||||
welcome_message = ' Type ":h <Enter>" for help, ":q <Enter>" to quit'
|
||||
status_bar = urwid.Text(welcome_message, align='left')
|
||||
footer = urwid.Pile([urwid.AttrMap(foot_bar, 'foot_bar'),
|
||||
urwid.AttrMap(status_bar, 'status'),
|
||||
urwid.AttrMap(command_prompt, 'prompt')])
|
||||
|
||||
main_frame = urwid.Frame(body=job_list_box, header=header, footer=footer)
|
||||
|
||||
loop = urwid.MainLoop(main_frame, palette, unhandled_input=self.unhandled_input, handle_mouse=False)
|
||||
loop.set_alarm_in(0, update)
|
||||
loop.run()
|
||||
|
||||
|
||||
def update(main_loop, user_data):
|
||||
thread_count = interface.get_thread_count()
|
||||
Loading…
Add table
Add a link
Reference in a new issue