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()