90 lines
2.4 KiB
Python
90 lines
2.4 KiB
Python
from sys import path
|
|
import os
|
|
fl0w_path = os.path.dirname(os.path.realpath(__file__))
|
|
shared_path = os.path.dirname(os.path.realpath(__file__)) + "/Shared/"
|
|
if fl0w_path not in path:
|
|
path.append(fl0w_path)
|
|
if shared_path not in path:
|
|
path.append(shared_path)
|
|
|
|
|
|
from watchdog.observers import Observer
|
|
from watchdog.events import FileSystemEventHandler
|
|
|
|
import sublime
|
|
import sublime_plugin
|
|
|
|
import socket
|
|
from ESock import ESock
|
|
from SublimeMenu import *
|
|
|
|
def plugin_unloaded():
|
|
observer.stop()
|
|
print("Observer stopped!")
|
|
|
|
|
|
class ReloadHandler(FileSystemEventHandler):
|
|
def on_modified(self, event):
|
|
print("Modified: %s" % event)
|
|
|
|
def on_created(self, event):
|
|
print("Created: %s" % event)
|
|
|
|
def on_deleted(self, event):
|
|
print("Deleted: %s" % event)
|
|
|
|
class Fl0w:
|
|
def __init__(self):
|
|
self.window = None
|
|
self.main_menu = Items()
|
|
self.link_menu = Items()
|
|
#self.link_menu.add_item(Item("Compile", action=self.info))
|
|
self.main_menu.add_item(Item("Connect", "Connect to a fl0w server", action=self.invoke_connect))
|
|
#self.main_menu.add_item(Item("Set Link", items=self.link_menu))
|
|
|
|
|
|
# Input invokers
|
|
def invoke_connect(self):
|
|
Input("Address Port", on_done=self.connect).invoke(self.window)
|
|
|
|
def invoke_auth(self):
|
|
Input("Username Password", on_done=self.auth).invoke(self.window)
|
|
|
|
|
|
|
|
|
|
def connect(self, connect_pair):
|
|
connect_pair = connect_pair.split(" ")
|
|
if len(connect_pair) == 2:
|
|
try:
|
|
self.sock = ESock(socket.create_connection(connect_pair))
|
|
self.main_menu.add_item(Item("Auth", "Authenticate", action=self.invoke_auth))
|
|
except Exception as e:
|
|
sublime.error_message("Error during connection creation:\n %s" % str(e))
|
|
else:
|
|
sublime.error_message("Input does not consist of IP and port")
|
|
|
|
def auth(self, auth_pair):
|
|
auth_pair = auth_pair.split(" ")
|
|
if len(auth_pair) == 2:
|
|
pass
|
|
"""
|
|
self.main_menu.add_item(Item("Compile", action=self.info))
|
|
self.main_menu.add_item(Item("Resync", action=self.info))
|
|
self.main_menu.add_item(Item("Disconnect", action=self.info))
|
|
self.main_menu.add_item(Item("Backup", action=self.info))
|
|
"""
|
|
|
|
|
|
class Fl0wCommand(sublime_plugin.WindowCommand):
|
|
def run(self, menu=None, action=None):
|
|
if fl0w.window == None:
|
|
fl0w.window = self.window
|
|
fl0w.main_menu.invoke(self.window)
|
|
|
|
|
|
|
|
fl0w = Fl0w()
|
|
observer = Observer()
|
|
observer.schedule(ReloadHandler(), path=".", recursive=True)
|
|
#observer.start()
|