bicycle_statistics: Transformed to file system event driven service
Signed-off-by: Thomas Klaehn <thomas.klaehn@u-blox.com>
This commit is contained in:
@@ -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())
|
||||
|
Reference in New Issue
Block a user