Выбор карт вынесен в отдельную функцию choose_map + зачатки modinstall
This commit is contained in:
parent
d40320beef
commit
b5251d4984
69
dodo.py
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)
|
||||
|
Loading…
Reference in New Issue
Block a user