Example #1
0
    args = parser.parse_args()
    logging.basicConfig(format=FORMAT, level=LOG_LEVELS[args.log_level])

    if args.list_actions:
        list_actions()
        exit()

    action_name = args.action or config_object.action
    action_arg = args.action_arg or config_object.action_arg
    watch_path = args.watch_path or config_object.watch_path
    observer_timeout = args.observer_timeout or config_object.observer_timeout

    action = ACTION_LIST[action_name]['class']
    logging.info(
        f'watch path: {watch_path}; action: {action_name}({action_arg})')

    event_handler = EventHandler(config_object)
    event_handler.action = action(action_arg)
    observer = Observer(timeout=observer_timeout)
    observer.schedule(event_handler, watch_path, recursive=False)
    observer.start()

    try:
        import time
        while True:
            time.sleep(1000)
    except KeyboardInterrupt:
        logging.info("Quitting...")
        observer.stop()
        observer.join()