.
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
|
||||
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
def isrunning(cmd:str):
|
||||
@@ -97,4 +96,3 @@ class Manager:
|
||||
self._current = item["key"]
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -3,14 +3,15 @@ import argparse
|
||||
from types import new_class
|
||||
from typing import List
|
||||
import sys
|
||||
import onlyone
|
||||
import yaml
|
||||
import os
|
||||
import onlyone
|
||||
import onlyone.namedpipes
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
logging.basicConfig(level="DEBUG")
|
||||
log = logging.getLogger(__name__)
|
||||
parser = argparse.ArgumentParser(description='onlyone')
|
||||
@@ -29,7 +30,7 @@ if args.configFile:
|
||||
log.info("config file content : " + configTxt)
|
||||
log.info("trying read yaml")
|
||||
configDict = yaml.safe_load(configTxt)
|
||||
manager.load(configDict, True)
|
||||
#manager.load(configDict, True)
|
||||
else:
|
||||
log.error("Current Path:" + os.getcwd())
|
||||
log.error("File dont exists:" + args.configfile)
|
||||
@@ -42,6 +43,5 @@ if args.server:
|
||||
try:
|
||||
npServer = onlyone.namedpipes.Server(manager, "/tmp/onlyone_fifo")
|
||||
log.info("server loaded...")
|
||||
input("[server mode]\n")
|
||||
except KeyboardInterrupt:
|
||||
log.info("dead")
|
||||
log.info("KeyboardInterrupt")
|
||||
@@ -1,34 +1,15 @@
|
||||
|
||||
import onlyone
|
||||
import os
|
||||
import errno
|
||||
import logging
|
||||
import threading
|
||||
|
||||
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:
|
||||
def __init__(self, manager:onlyone.Manager, fifoname:str):
|
||||
def __init__(self, manager, fifoname:str):
|
||||
self.manager=manager
|
||||
self__fifoname=fifoname
|
||||
try:
|
||||
@@ -39,7 +20,31 @@ class Server:
|
||||
|
||||
readTask = ReadTask()
|
||||
self.__readThread = threading.Thread(target=readTask.run, args = (fifoname,) )
|
||||
#self.__readThread.start()
|
||||
self.__readThread.start()
|
||||
|
||||
def kill(self):
|
||||
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