bicycle_statistics: Transformed to file system event driven service

Signed-off-by: Thomas Klaehn <thomas.klaehn@u-blox.com>
This commit is contained in:
Thomas Klaehn
2018-07-26 14:20:15 +02:00
parent 492c67bec3
commit b4d4d844fd
4 changed files with 185 additions and 94 deletions

View File

@@ -1,6 +1,12 @@
import argparse
import sys
import threading
import time
from watchdog.observers import Observer
from gpx2html import Gpx2Html
from input_observer import InputObserver
def parse_args():
'''Shell argument parser.'''
@@ -9,10 +15,48 @@ def parse_args():
parser.add_argument('outfolder', help='Specify the out folder.')
return parser.parse_args()
class myLoop(threading.Thread):
def __init__(self, infolder, outfolder):
super(myLoop, self).__init__()
self.run_condition = True
self.infolder = infolder
self.outfolder = outfolder
self.observer = Observer()
self.in_obs = InputObserver(patterns=["*.gpx"])
def run(self):
gpx2html = Gpx2Html(self.infolder, self.outfolder)
gpx2html.process()
self.observer.schedule(self.in_obs, self.infolder)
self.observer.start()
while self.run_condition is True:
new_file = self.in_obs.get_new_file()
if new_file:
gpx2html.process()
print "processed"
def stop(self):
self.run_condition = False
self.in_obs.stop()
self.observer.stop()
self.observer.join()
def main():
args = parse_args()
gpx2html = Gpx2Html(args.infolder, args.outfolder)
gpx2html.process()
my_loop = myLoop(args.infolder, args.outfolder)
my_loop.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
my_loop.stop()
my_loop.join()
return 0
if __name__ == '__main__':
sys.exit(main())