Выбор карт вынесен в отдельную функцию choose_map + зачатки modinstall

This commit is contained in:
sitisll 2023-02-17 17:21:22 +03:00
parent d40320beef
commit b5251d4984

69
dodo.py

@ -27,6 +27,7 @@ if x>0:
list_config.remove('.directory')
def logging(l):
"Записываем логи в файл"
with open(dir_server + "logs", "a") as filelog:
@ -77,6 +78,17 @@ create_dir(dir_server)
create_dir(config_dodo)
@dodo.command(help='Установка модов, укажите через запятую id модов')
@click.option('--id', default="", help='id модификаций из мастерской steam')
def modinstall(id, map_server=list_config):
print(id)
print(type(id))
print("Выберите карты, которым добавить моды")
map_server=choose_map(map_server)
print("map_server=",map_server)
print("Перезагрузите сервера для установки модов")
@dodo.command(help='Для конфигурирования параметров запускаемого сервера или кластера серверов')
def config(map_server=list_config):
query_p = []
@ -239,31 +251,10 @@ def servers(map_servers=list_config):
@dodo.command(help='Для запуска, сконфигурированного сервера или кластера')
def start(map_server=list_config):
map_choise = []
while True:
"Проверка на выбор имеющихся карт"
check = True
for i in range(len(map_server)):
print(f"{i+1}) {map_server[i]}")
map_list = input("Выбери карты для запуска в формате 1 2 3 или 1,2,3")
map_list = map_list.replace(',', ' ')
map_list = list(set(map_list.split()))
try:
for s in map_list:
if int(s) > len(map_server):
check = False
if len(map_list) <= len(map_server) and check == True:
break
except:
logging(traceback.format_exc())
logging(f"Ошибка при выборе карт для запуска, пользователь ввел - {map_list}")
print("Неправильный ввод")
for j in str(map_list):
map_choise.append(map_server[int(j) - 1])
map_server = map_choise
if map_server==[]:
return print("Нет карт для запуска")
print("Выберите карты для запуска")
map_server = choose_map(map_server)
for i in map_server:
cluster_server, name_server, port_server, query_port, password_server, max_players, dir_server, mods_id, listen_server, cluster_id, cluster_dir_ovverride = read_yaml(i)
@ -280,6 +271,34 @@ def start(map_server=list_config):
else:
print("Сервер не установлен, проверьте, достаточно ли места на диске для установки карты")
def choose_map(map_server):
map_choise = []
while True:
"Проверка на выбор имеющихся карт"
check = True
for i in range(len(map_server)):
print(f"{i + 1}) {map_server[i]}")
map_list = input("Выбери карты в формате 1 2 3 или 1,2,3")
map_list = map_list.replace(',', ' ')
map_list = list(set(map_list.split()))
try:
for s in map_list:
if int(s) > len(map_server):
check = False
if len(map_list) <= len(map_server) and check == True:
break
except:
logging(traceback.format_exc())
logging(f"Ошибка при выборе карт для запуска, пользователь ввел - {map_list}")
print("Неправильный ввод")
for j in str(map_list):
map_choise.append(map_server[int(j) - 1])
map_server = map_choise
return map_server
def read_yaml(map_server):
with open(f"{home_dir}/.config/dodo/{map_server}", "r") as yamlfile:
data = yaml.load(yamlfile, Loader=yaml.FullLoader)