Окончательная чистка
This commit is contained in:
parent
ffd37bad3c
commit
7ac346f061
93
hlna.py
93
hlna.py
@ -36,7 +36,7 @@ delist_config = find_file(dir_deactivated)
|
||||
|
||||
|
||||
def path_server():
|
||||
'Получение пути для хранения файлов серверов, записываем путь в yaml файл'
|
||||
"""Получение пути для хранения файлов серверов, записываем путь в yaml файл"""
|
||||
dir_server = input(f"""Укажите путь до каталога, где будут храниться файлы сервера. По-умолчанию {home_dir}/Servers/
|
||||
:""")
|
||||
if not dir_server:
|
||||
@ -51,7 +51,7 @@ def hlna():
|
||||
|
||||
|
||||
def unpack(src, dst):
|
||||
'Добавить документацию'
|
||||
"""Добавить документацию"""
|
||||
with open(src, 'rb') as f:
|
||||
sigver = struct.unpack('q', f.read(8))[0]
|
||||
unpacked_chunk = f.read(8)
|
||||
@ -149,9 +149,9 @@ def check_int(number=""):
|
||||
print_line("Введите число")
|
||||
|
||||
|
||||
@hlna.command(help='Сбор настроек для сервера или кластера')
|
||||
@hlna.command(help='Выбор игры и сбор настроек для сервера(-ов)')
|
||||
def config():
|
||||
"Выбор игры для создания сервера"
|
||||
"""Выбор игры для создания сервера"""
|
||||
while True:
|
||||
count_game = check_int("""Выберите игру для конфигурирования
|
||||
1. ARK Survival Evolved
|
||||
@ -166,9 +166,10 @@ def config():
|
||||
|
||||
|
||||
def config_ark(list_config=list_config):
|
||||
"конфигурирование сервера арк"
|
||||
"""конфигурирование сервера арк"""
|
||||
create_dir(dir_server_ark)
|
||||
create_dir(dir_maps_ark)
|
||||
path_server()
|
||||
"""Сбор данных для конфига"""
|
||||
port_s = []
|
||||
rcon_p = []
|
||||
@ -206,7 +207,7 @@ def config_ark(list_config=list_config):
|
||||
|
||||
for i in range(count_maps):
|
||||
while True:
|
||||
"Проверка на выбор карты из списка"
|
||||
"""Проверка на выбор карты из списка"""
|
||||
amount_map = check_int("""Выберите карту из списка указав номер
|
||||
1. The Island
|
||||
2. The Center
|
||||
@ -332,14 +333,14 @@ def config_ark(list_config=list_config):
|
||||
listen_server = False
|
||||
else:
|
||||
listen_server = True
|
||||
|
||||
"""Вызов создания конфига"""
|
||||
yaml_create("ARK", "", cluster_server, map_s, list_config[-1], port_server, query_port,
|
||||
rcon_enabled, rcon_port, adminpassword_server, password_server, max_players, cluster_id,
|
||||
cluster_dir_override, listen_server)
|
||||
rcon_enabled, rcon_port, adminpassword_server, password_server, max_players,
|
||||
cluster_id, cluster_dir_override, listen_server)
|
||||
|
||||
|
||||
def config_7daystodie():
|
||||
"конфигурирование сервера 7 days to die"
|
||||
"""конфигурирование сервера 7 days to die"""
|
||||
list_simvols = ("$","@","-",".","%","{","}","+","/")
|
||||
create_dir(dir_server_7days)
|
||||
config_7days = input("Введите имя конфига (serverconfig):\n")
|
||||
@ -355,15 +356,14 @@ def config_7daystodie():
|
||||
|
||||
|
||||
def xml_parser():
|
||||
"добавить документацию"
|
||||
print("Я не умею парсить))")
|
||||
"""добавить документацию"""
|
||||
print("Я пока не умею парсить xml))")
|
||||
|
||||
|
||||
def yaml_create(game, dir_server="", cluster_server="", map_s="", name_server="", port_server="", query_port="",
|
||||
rcon_enabled="", rcon_port="",
|
||||
adminpassword_server="", password_server="", max_players="", id_mods_ark="", cluster_id="",
|
||||
cluster_dir_override="", listen_server=""):
|
||||
"добавить документацию"
|
||||
rcon_enabled="", rcon_port="", adminpassword_server="", password_server="", max_players="",
|
||||
id_mods_ark="", cluster_id="", cluster_dir_override="", listen_server=""):
|
||||
"""Создаёт на основании собранных данных yaml конфиг"""
|
||||
if game == "ARK":
|
||||
path_yaml = dir_maps_ark + name_server
|
||||
settings = [
|
||||
@ -401,7 +401,7 @@ def yaml_create(game, dir_server="", cluster_server="", map_s="", name_server=""
|
||||
|
||||
|
||||
def systemd_unit_create(game, config_7days="", name_server=list_config):
|
||||
"добавить документацию"
|
||||
"""Создаёт на основании yaml конфига systemd юнит"""
|
||||
if game == "ARK":
|
||||
id_game = "376030"
|
||||
for i in name_server:
|
||||
@ -412,12 +412,11 @@ def systemd_unit_create(game, config_7days="", name_server=list_config):
|
||||
unit_file = f"{dir_unit}ark_{data['SessionName']}.service".lower()
|
||||
elif game == "7Days":
|
||||
id_game = "294420"
|
||||
# сюда дописать обращение к xml для получения уникального имени сервера
|
||||
# сюда дописать обращение к xml_parser для получения уникального имени сервера
|
||||
unit_dir_server = dir_server_7days
|
||||
systemd_unit_exec = f"{dir_server_7days}startserver.sh -configfile={config_7days}.xml"
|
||||
unit_file = f"{dir_unit}7days.service".lower()
|
||||
|
||||
|
||||
unit_text = f'''[Unit]
|
||||
Description={game}: Server
|
||||
Wants=network-online.target
|
||||
@ -442,13 +441,13 @@ WantedBy=default.target
|
||||
os.system(f"systemctl --user enable {unit_name}")
|
||||
|
||||
|
||||
@hlna.command(help='Для скачивания и установки модов')
|
||||
@hlna.command(help='Для скачивания и установки модов <hlna ark -m all -i 111111111>')
|
||||
@click.argument('g', nargs=1)
|
||||
@click.option('-m', default='all', help="Название карты для запуска или all для запуска всех карт")
|
||||
@click.option("-i/-u", default=True, help="-i установить моды, -u удалить моды")
|
||||
@click.argument('id_mods_ark', nargs=-1)
|
||||
def mod(g, m, i, id_mods_ark):
|
||||
"добавить документацию"
|
||||
"""Проводит операции на модами"""
|
||||
if g == "ark":
|
||||
id_game_workshop = "346110"
|
||||
if not os.path.isdir(dir_workshop_ark):
|
||||
@ -467,7 +466,7 @@ def mod(g, m, i, id_mods_ark):
|
||||
|
||||
|
||||
def modextract(id_mod, id_game_workshop, dir_ark_mods):
|
||||
"добавить документацию"
|
||||
"""Распаковывает файлы мода и создаёт .mod файл для него"""
|
||||
dir_steam_workshop = f"{dir_workshop_ark}/content/{id_game_workshop}/{id_mod}/WindowsNoEditor"
|
||||
dir_extract = dir_ark_mods
|
||||
if id_mod == "111111111":
|
||||
@ -561,7 +560,9 @@ def enablemap(m, e):
|
||||
print("Заменить query port?")
|
||||
continue
|
||||
x = os.system(
|
||||
f"mv {dir_deactivated}{i} {dir_maps_ark} >> {dir_logs}{date} 2>&1") # Добавить текущее время
|
||||
f"mv {dir_deactivated}{i} {dir_maps_ark} >> {dir_logs}{date} 2>&1")
|
||||
os.system(f"systemctl --user stop ari_{i}")
|
||||
os.system(f"systemctl --user disable ari_{i}")
|
||||
with open(f"{dir_logs}{date}.log", "a") as f:
|
||||
f.write(f"[{time}] File {i} has been moved to {dir_maps_ark}\n")
|
||||
if x == 0:
|
||||
@ -577,7 +578,9 @@ def enablemap(m, e):
|
||||
print(f"Карта {i} уже есть в деактивированных")
|
||||
continue
|
||||
x = os.system(
|
||||
f"mv {dir_maps_ark}{i} {dir_deactivated} >> {dir_logs}{date} 2>&1") # Добавить текущее время
|
||||
f"mv {dir_maps_ark}{i} {dir_deactivated} >> {dir_logs}{date} 2>&1")
|
||||
os.system(f"systemctl --user enable ari_{i}")
|
||||
os.system(f"systemctl --user start ari_{i}")
|
||||
with open(f"{dir_logs}{date}.log", "a") as f:
|
||||
f.write(f"[{time}] File {i} has been moved to {dir_deactivated}\n")
|
||||
if x == 0:
|
||||
@ -590,7 +593,7 @@ def enablemap(m, e):
|
||||
|
||||
@hlna.command()
|
||||
def status(list_config=list_config):
|
||||
"добавить документацию"
|
||||
"""Выводит статус настроеных серверов"""
|
||||
# Добавить сортивку по кластерам и вывод несколько столбиков
|
||||
if list_config == [] and delist_config == []:
|
||||
print_line("Сервера не сконфигурированы")
|
||||
@ -640,9 +643,9 @@ def status(list_config=list_config):
|
||||
@click.option('-g', required=True, help="Название игры для запуска. (ark, 7days")
|
||||
@click.option('-m', default='all', help="Название карты для запуска или all для запуска все карт")
|
||||
def start(g, m):
|
||||
"добавить документацию"
|
||||
#добавить проверку на ввод аргумента ark/7day если else: давать подсказку
|
||||
#если нет конфигов, то выводим что серверов нет
|
||||
"""Запускает сервер выбранной игры"""
|
||||
# добавить проверку на ввод аргумента ark/7day если else: давать подсказку
|
||||
# если нет конфигов, то выводим что серверов нет
|
||||
start_stop("start", g, m)
|
||||
|
||||
|
||||
@ -650,9 +653,7 @@ def start(g, m):
|
||||
@click.option('-g', required=True, help="Название игры для запуска. (ark, 7days")
|
||||
@click.option('-m', default='all', help="Название карты для запуска или all для запуска все карт")
|
||||
def stop(g, m):
|
||||
"добавить документацию"
|
||||
#добавить проверку на ввод аргумента ark/7day если else: давать подсказку
|
||||
#если нет конфигов, то выводим что серверов нет
|
||||
"""Останавливает сервер"""
|
||||
start_stop("stop", g, m)
|
||||
|
||||
|
||||
@ -660,13 +661,27 @@ def stop(g, m):
|
||||
@click.option('-g', required=True, help="Название игры для запуска. (ark, 7days")
|
||||
@click.option('-m', default='all', help="Название карты для запуска или all для запуска все карт")
|
||||
def restart(g, m):
|
||||
"добавить документацию"
|
||||
"""Перезагружает сервер"""
|
||||
start_stop("restart", g, m)
|
||||
|
||||
|
||||
def start_stop(action, g, m, list_config=list_config):
|
||||
"добавить документацию"
|
||||
def check_exist_servers(g):
|
||||
"""Проверяет наличие конфигов для активных карт"""
|
||||
if g == "ark":
|
||||
if not os.path.exists(f"{dir_mods_ark}"):
|
||||
print_line("Нет сконфигурированных серверов") # добавить отсюда вилку на вопрос с конфигурацией
|
||||
else:
|
||||
return
|
||||
elif g == "7days":
|
||||
print_line("7Days")
|
||||
|
||||
|
||||
def start_stop(action, g, m, list_config=list_config):
|
||||
"""Функция изменения статусов сервера"""
|
||||
if g != "ark" or "7days":
|
||||
return
|
||||
elif g == "ark":
|
||||
check_exist_servers(g)
|
||||
dict_mapname = {}
|
||||
dict_allmapname = []
|
||||
for i in list_config:
|
||||
@ -690,8 +705,6 @@ def start_stop(action, g, m, list_config=list_config):
|
||||
x = os.system(f"systemctl --user {action} ark_{data['SessionName'].lower()}.service")
|
||||
if x == 0:
|
||||
print_line("Готово")
|
||||
else:
|
||||
print("Ни одной карты не установлено")
|
||||
elif g == "7days":
|
||||
x = os.system(f"systemctl --user {action} 7days.service")
|
||||
if x == 0:
|
||||
@ -699,7 +712,7 @@ def start_stop(action, g, m, list_config=list_config):
|
||||
|
||||
|
||||
def read_yaml(list_config=list_config, flag=True, game=""):
|
||||
"добавить документацию"
|
||||
"""Читает конфиги и отдаёт данные туда где их запросили"""
|
||||
# Читаем конфиги активных или неактивных карт в зависимости от флага
|
||||
if game == "ARK":
|
||||
path_yaml = f"{dir_maps_ark}{list_config}" if flag else f"{dir_deactivated}{list_config}"
|
||||
@ -711,7 +724,7 @@ def read_yaml(list_config=list_config, flag=True, game=""):
|
||||
|
||||
|
||||
def choose_map(arr):
|
||||
"добавить документацию"
|
||||
"""Функция выбора карт"""
|
||||
new_arr = []
|
||||
arr = sorted(arr)
|
||||
print('Найдены сервера с этой картой')
|
||||
@ -736,7 +749,7 @@ def choose_map(arr):
|
||||
@click.argument('c', nargs=1)
|
||||
@click.option('-m', required=True, help="Название карты для применения rcon команды")
|
||||
def rcon(m, c):
|
||||
"добавить документацию"
|
||||
"""Функция обеспечивающая отправку команд на игровой сервер через rcon"""
|
||||
dict_mapname = {}
|
||||
dict_adminpwd = {}
|
||||
if list_config:
|
||||
@ -764,7 +777,7 @@ def rcon(m, c):
|
||||
|
||||
|
||||
def zero(x=""):
|
||||
"Потом пригодится"
|
||||
"""Потом пригодится"""
|
||||
return ""
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user