diff --git a/hlna.py b/hlna.py index d2e7a8c..c7293f7 100755 --- a/hlna.py +++ b/hlna.py @@ -155,7 +155,7 @@ def print_line(*text, flag="", sep=" ", end="\n"): color = colorama.Fore.CYAN else: color = colorama.Fore.WHITE - len_text = str(*text) + len_text = str(text) len_text = len_text.split("\n") max_length = max(len(string) for string in len_text) + 2 print(color + "." * max_length) @@ -386,12 +386,12 @@ def config_maps(i): return map_s, port_s, query_p, rcon_p -def config_nameserver(map_s, flag=True): +def config_nameserver(map_s): while True: - if flag: - name_server = input("Укажите название Сервера: \n") - else: - name_server = map_s + name_exist_server = choose_map(g="ark", m=map_s)[-1] # вызывается когда не нужен, затем когда доходит до создания юнита в config_ark туда приходит не то имя, которое ожидалось + name_server = input("Укажите название Сервера: \n") + if name_exist_server != name_server: + os.system(f"mv {dir_unit}ark_{name_exist_server}.service {dir_unit}ark_{name_server}.service") if name_server == "": if map_s in list_config: count = 1 @@ -399,28 +399,34 @@ def config_nameserver(map_s, flag=True): while new_name in list_config: new_name = f"{map_s}{str(count)}" count += 1 - list_config.append(new_name) + name_server = new_name break else: - list_config.append(map_s) + name_server = map_s break else: - if name_server in list_allconfigs: - choose_reconf = input("""Сервер существует. Перенастроить? (по умолчанию) нет - 1. Да - 2. Нет + if name_server in list_config: + choose_reconf = input("""Сервер существует. (по умолчанию - отмена) + 1. Переименовать + 2. Изменить настройки + 3. Отмена :""") - if choose_reconf == "": - return + if choose_reconf == "" or choose_reconf == "3": + exit() elif choose_reconf == "1": - print_line("Введите новое имя сервера", flag="YELLOW") - flag = True + continue + elif choose_reconf == "2": + config_ark(flag=True) else: - return + print_line("Выберите ВОЗМОЖНОЕ действие") else: - list_config.append(name_server) # если enter, то ставим последним элементом карту break - return list_config + return name_server + + +def reconf_yaml(): + name_server = input("Укажите название Сервера: \n") + return name_server def config_ports(port_s): @@ -473,7 +479,7 @@ def config_listen(): return listen_server -def config_ark(list_config=list_config): +def config_ark(list_config=list_config, flag=False): """конфигурирование сервера арк""" create_dir(dir_server_ark) create_dir(dir_maps_ark) @@ -489,7 +495,10 @@ def config_ark(list_config=list_config): count_maps = config_nummap() for i in range(count_maps): map_s, port_s, query_p, rcon_p = config_maps(i) - list_config = config_nameserver(map_s) + if flag: + list_config = [reconf_yaml()] + else: + list_config = config_nameserver(map_s) port_server = config_ports(port_s) query_port = config_query(query_p) rcon_port = config_rcon(rcon_p) @@ -845,11 +854,13 @@ def switch(g, m, e): # добавить all if e: port_s, query_p, rcon_p = ports_array() state_msg = "активных" if e else "не активных" - for i in m: + name_server = choose_map(g, m) + for i in name_server: try: data = read_yaml(g="ark", m=i, flag=not e) if e: # добавить проверку занятости имени - data['SessionName'] = config_nameserver(i, flag=False)[-1] + if i in list_config: + data['SessionName'] = config_nameserver(i, flag=False)[-1] data['Port'] = ports(data['Port'], port_s, e) data['QueryPort'] = ports(data['QueryPort'], port_s, e) data['RCONPort'] = ports(data['RCONPort'], port_s, e) @@ -878,6 +889,7 @@ def switch(g, m, e): # добавить all print_line("ошибка операции", flag="RED") +# Добавить возможность вывода информации по запрошенной игре + карте (серверу), а так же по всем. @hlna.command(help='Выводит статус настроеных серверов') def status(list_config=list_config): ext_ip = get_external_ip()