.
This commit is contained in:
5
.vscode/settings.json
vendored
5
.vscode/settings.json
vendored
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"python.analysis.extraPaths": [
|
|
||||||
"./onlyone"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -4,7 +4,6 @@ import logging
|
|||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
def isrunning(cmd:str):
|
def isrunning(cmd:str):
|
||||||
@@ -97,4 +96,3 @@ class Manager:
|
|||||||
self._current = item["key"]
|
self._current = item["key"]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,14 +3,15 @@ import argparse
|
|||||||
from types import new_class
|
from types import new_class
|
||||||
from typing import List
|
from typing import List
|
||||||
import sys
|
import sys
|
||||||
import onlyone
|
|
||||||
import yaml
|
import yaml
|
||||||
import os
|
import os
|
||||||
|
import onlyone
|
||||||
import onlyone.namedpipes
|
import onlyone.namedpipes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
logging.basicConfig(level="DEBUG")
|
logging.basicConfig(level="DEBUG")
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
parser = argparse.ArgumentParser(description='onlyone')
|
parser = argparse.ArgumentParser(description='onlyone')
|
||||||
@@ -29,7 +30,7 @@ if args.configFile:
|
|||||||
log.info("config file content : " + configTxt)
|
log.info("config file content : " + configTxt)
|
||||||
log.info("trying read yaml")
|
log.info("trying read yaml")
|
||||||
configDict = yaml.safe_load(configTxt)
|
configDict = yaml.safe_load(configTxt)
|
||||||
manager.load(configDict, True)
|
#manager.load(configDict, True)
|
||||||
else:
|
else:
|
||||||
log.error("Current Path:" + os.getcwd())
|
log.error("Current Path:" + os.getcwd())
|
||||||
log.error("File dont exists:" + args.configfile)
|
log.error("File dont exists:" + args.configfile)
|
||||||
@@ -42,6 +43,5 @@ if args.server:
|
|||||||
try:
|
try:
|
||||||
npServer = onlyone.namedpipes.Server(manager, "/tmp/onlyone_fifo")
|
npServer = onlyone.namedpipes.Server(manager, "/tmp/onlyone_fifo")
|
||||||
log.info("server loaded...")
|
log.info("server loaded...")
|
||||||
input("[server mode]\n")
|
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
log.info("dead")
|
log.info("KeyboardInterrupt")
|
||||||
@@ -1,34 +1,15 @@
|
|||||||
|
|
||||||
import onlyone
|
|
||||||
import os
|
import os
|
||||||
import errno
|
import errno
|
||||||
import logging
|
import logging
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
class ReadTask:
|
|
||||||
def __init__(self):
|
|
||||||
self.__kill=False
|
|
||||||
|
|
||||||
def kill(self):
|
|
||||||
self.__kill=True
|
|
||||||
|
|
||||||
def run(self, fifoname):
|
|
||||||
while True:
|
|
||||||
if self.__kill:
|
|
||||||
return
|
|
||||||
log.info("Opening FIFO...")
|
|
||||||
with open(fifoname) as fifo:
|
|
||||||
log.info("FIFO opened")
|
|
||||||
while True:
|
|
||||||
data = fifo.read()
|
|
||||||
if len(data) == 0:
|
|
||||||
log.info("FIFO Writer closed")
|
|
||||||
break
|
|
||||||
log.info('FIFO Read: "{0}"'.format(data))
|
|
||||||
|
|
||||||
class Server:
|
class Server:
|
||||||
def __init__(self, manager:onlyone.Manager, fifoname:str):
|
def __init__(self, manager, fifoname:str):
|
||||||
self.manager=manager
|
self.manager=manager
|
||||||
self__fifoname=fifoname
|
self__fifoname=fifoname
|
||||||
try:
|
try:
|
||||||
@@ -39,7 +20,31 @@ class Server:
|
|||||||
|
|
||||||
readTask = ReadTask()
|
readTask = ReadTask()
|
||||||
self.__readThread = threading.Thread(target=readTask.run, args = (fifoname,) )
|
self.__readThread = threading.Thread(target=readTask.run, args = (fifoname,) )
|
||||||
#self.__readThread.start()
|
self.__readThread.start()
|
||||||
|
|
||||||
def kill(self):
|
def kill(self):
|
||||||
self.__readThread.kill()
|
self.__readThread.kill()
|
||||||
|
|
||||||
|
class ReadTask:
|
||||||
|
def __init__(self):
|
||||||
|
self.__kill=False
|
||||||
|
|
||||||
|
def kill(self):
|
||||||
|
self.__kill=True
|
||||||
|
|
||||||
|
def read(self, fifoname):
|
||||||
|
log.info("waiting FIFO...")
|
||||||
|
with open(fifoname) as fifo:
|
||||||
|
log.info("FIFO opened")
|
||||||
|
while True:
|
||||||
|
data = fifo.read()
|
||||||
|
if len(data) == 0:
|
||||||
|
log.info("FIFO closed")
|
||||||
|
break
|
||||||
|
log.info('FIFO Data: "{0}"'.format(data))
|
||||||
|
|
||||||
|
def run(self, fifoname):
|
||||||
|
while True:
|
||||||
|
if self.__kill:
|
||||||
|
return
|
||||||
|
self.read(fifoname)
|
||||||
Reference in New Issue
Block a user