X-Git-Url: http://git.treefish.org/~alex/photosort.git/blobdiff_plain/224556236ecd0f48f461738bc8157a82f5009618..ef745f5c8e8191f8ff341cb6fcf39179e34eb2bd:/src/photosort-daemon.py?ds=inline diff --git a/src/photosort-daemon.py b/src/photosort-daemon.py new file mode 100755 index 0000000..9bb7213 --- /dev/null +++ b/src/photosort-daemon.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 + +import argparse +import json +import logging +import os +import signal +import time + +from bunch import Bunch + +def handle_interrupt(sig, frame): + global stop + if os.getpid() == main_pid: + logging.info( "Got stop signal." ) + stop = True + +main_pid = os.getpid() +signal.signal(signal.SIGINT, handle_interrupt) +stop = False + +parser = argparse.ArgumentParser(description='Photo Sort Daemon.') +parser.add_argument('config_file', type=str, help='path to config file') +parser.add_argument('-l', '--log-level', type=str, default='INFO', dest='log_lvl', + choices=['DEBUG', 'INFO', 'WARNING'], help='select log level') + +args = parser.parse_args() + +logging.basicConfig(format='[%(asctime)s] %(levelname)s: %(message)s', + level=logging.getLevelName(args.log_lvl), + datefmt='%m/%d/%Y %H:%M:%S') + +with open(args.config_file) as f: + cfg = json.load(f) + +bunches = [] +for bunch_cfg in cfg['bunches']: + bunches.append( Bunch(bunch_cfg) ) + + +for bunch in bunches: + bunch.start() + +while not stop: + time.sleep(2.0) + +for bunch in bunches: + bunch.stop()