import select import sys from src.parser import get_args from src.node_manager import NodeManager actions = [ {'explanation': 'Add another node into our cluster', 'function': 'add_node'}, {'explanation': 'Exit', 'function': 'exit'}, ] if __name__ == '__main__': args = get_args() host, port = args.host, args.port manager = NodeManager(host, port) manager.start_service() is_run = True while is_run: explanation = '=' * 30 + '\n' for index, action in enumerate(actions): explanation += f'{index+1}) {action["explanation"]}\n' explanation += '=' * 30 explanation += '\n> ' print(explanation, end='') while True: if sys.stdin.closed: sys.stdin = open(0) read_list, _, _ = select.select([sys.stdin], [], [], 1) if read_list: action = sys.stdin.readline() try: action = actions[int(action)-1] if action['function'] == 'exit': manager.exit() is_run = False else: func = getattr(manager, action['function']) func() break except: break print("\n\n\n") print("Stopped")