From 86118e532baa6b25f72051ab25e1f3d233dda718 Mon Sep 17 00:00:00 2001 From: xpamych Date: Sat, 13 May 2023 17:51:13 +0300 Subject: [PATCH] start, stop, restart --- hlna.py | 68 ++++++++++++++++++++++----------------------------------- 1 file changed, 26 insertions(+), 42 deletions(-) diff --git a/hlna.py b/hlna.py index 7fc9604..370fa27 100755 --- a/hlna.py +++ b/hlna.py @@ -477,11 +477,31 @@ def servers(map_server=list_config): @click.option('-g', help="Название игры для запуска. (ark, 7days") @click.option('-m', default='all', help="Название карты для запуска или all для запуска все карт") @click.option('-b', default='', help="") -def start(g, m, b, name_server=list_config): +def start(g, m, b): + start_stop("start", g, m, b) + + +@hlna.command(help='Для запуска, сконфигурированного сервера или кластера') +@click.option('-g', help="Название игры для запуска. (ark, 7days") +@click.option('-m', default='all', help="Название карты для запуска или all для запуска все карт") +@click.option('-b', default='', help="") +def stop(g, m, b): + start_stop("stop", g, m, b) + + +@hlna.command(help='Для запуска, сконфигурированного сервера или кластера') +@click.option('-g', help="Название игры для запуска. (ark, 7days") +@click.option('-m', default='all', help="Название карты для запуска или all для запуска все карт") +@click.option('-b', default='', help="") +def stop(g, m, b): + start_stop("restart", g, m, b) + + +def start_stop(action, g, m, b): if g == "ark": dict_mapname = {} dict_allmapname = [] - for i in name_server: + for i in list_config: data = read_yaml(i) print_line(f"Название сервера: {i} | Карта: {data['map']} | Кластер: {data['clusterid']}") dict_mapname[data['SessionName']] = data['map'] @@ -493,7 +513,7 @@ def start(g, m, b, name_server=list_config): if v in m: names_serverstart.append(ns) print_line(f"Карта которая запускается {ns}") - if name_server != []: + if list_config != []: if b == '': if m == "all": names_serverstart = dict_allmapname @@ -503,46 +523,11 @@ def start(g, m, b, name_server=list_config): for i in names_serverstart: data = read_yaml(i) - x = os.system(f"systemctl --user start ark_{data['SessionName'].lower()}.service") + os.system(f"~/git/hln-a/hlna.py rcon SaveWorld -m {i}") if action == ("restart", "stop") else "" + x = os.system(f"systemctl --user {action} ark_{data['SessionName'].lower()}.service") print_line(x) if x == 0: - print_line("Ok") - else: - print("Ни одной карты не установлено") - -@hlna.command(help='Для остановки серверов') -@click.option('-g', help="Название игры для остановки. (ark, 7days") -@click.option('-m', default='all', help="Название карты для остановки или all для запуска все карт") -@click.option('-b', default='', help="") -def stop(g, m, b, name_server=list_config): - if g == "ark": - dict_mapname = {} - dict_allmapname = [] - for i in name_server: - data = read_yaml(i) - print_line(f"Название сервера: {i} | Карта: {data['map']} | Кластер: {data['clusterid']}") - dict_mapname[data['SessionName']] = data['map'] - dict_allmapname.append(data['SessionName']) - print_line(f"Словарь названия сервера и карты {dict_mapname}") - names_serverstart = [] - for ns, v in dict_mapname.items(): - print_line(f"переменные v и m {v} & {m}") - if v in m: - names_serverstart.append(ns) - print_line(f"Карта которая запускается {ns}") - if name_server != []: - if b == '': - if m == "all": - names_serverstart = dict_allmapname - print(f"Запускаем все активные карты {names_serverstart}") - else: - names_serverstart = choose_map(names_serverstart) - - for i in names_serverstart: - data = read_yaml(i) - os.system(f"~/git/hln-a/hlna.py rcon SaveWorld -m {i}") - x = os.system(f"systemctl --user stop ark_{data['SessionName'].lower()}.service") - print_line(x) + print_line("Сервер запустился") else: print("Ни одной карты не установлено") @@ -595,7 +580,6 @@ def rcon(m, c): rcon_ports.append(ns) print_line(f"Карта которая запускается {ns}") for port in rcon_ports: - print(port) passwd = dict_adminpwd[port] with Client('127.0.0.1', port, passwd=str(passwd)) as client: response = client.run(c)