Много мучался с бэкапами)) переделал вызов read yaml. Заебался!
This commit is contained in:
parent
2f31e01186
commit
61f653be2b
182
hlna.py
182
hlna.py
@ -39,7 +39,7 @@ dir_maps_ark = f"{dir_config}ARK/"
|
||||
dir_deactivated = f"{dir_maps_ark}deactivated/"
|
||||
list_config = find_file(dir_maps_ark)
|
||||
delist_config = find_file(dir_deactivated)
|
||||
|
||||
list_allconfigs = list_config + delist_config
|
||||
|
||||
def create_dir(directory):
|
||||
"""Проверка и создание директории"""
|
||||
@ -72,13 +72,13 @@ def hlna():
|
||||
def restore(g, m, d):
|
||||
"""Получение пути к файлам внутри архива"""
|
||||
with tarfile.open(d, 'r') as tar_file:
|
||||
files = tar_file.namelist()
|
||||
files = tar_file.getnames()
|
||||
"""Извлечение файлов"""
|
||||
for i in files:
|
||||
with tar_file.extract(d, 'r:gz') as tar_file:
|
||||
path_extarct = "./" if g == 'test' else "/"
|
||||
tar_file.extract(i, path_extarct)
|
||||
print(i, colorama.Fore.GREEN + "- перемещен" + colorama.Style.RESET_ALL)
|
||||
print_line(f"i - перемещен", flag="GREEN")
|
||||
print_line(f"Бэкап {d} восстановлен", flag="GREEN")
|
||||
|
||||
|
||||
@ -87,12 +87,16 @@ def restore(g, m, d):
|
||||
@click.option('-m', default='all', help="Название карты для запуска или all для запуска всех карт")
|
||||
def backup(g, m):
|
||||
if g == "ark" or g == "ark_test":
|
||||
name_server = choose_map(g, m)
|
||||
name_servers = choose_map(g, m)
|
||||
config_backup(g, m)
|
||||
backup_path = f"{dir_server_ark}Backups" if g == "ark" else f"{dir_server_ark}Backups/test_backup"
|
||||
if not backup_path:
|
||||
backup_path = f"{dir_server_ark}Backups"
|
||||
for i in name_server:
|
||||
source = [f"{dir_maps_ark}"]
|
||||
for i in name_servers:
|
||||
data = read_yaml(g="ark", m=i)
|
||||
map = data['map']
|
||||
str(map)
|
||||
source = [f"{dir_maps_ark}", f"{dir_ark_save}"]
|
||||
target = f"{backup_path}/{g}_{i}_backup_{time.strftime('%Y_%m_%d')}.tar"
|
||||
create_dir(backup_path)
|
||||
with tarfile.open(target, 'w') as mytar:
|
||||
@ -100,17 +104,17 @@ def backup(g, m):
|
||||
for root, dirs, files in os.walk(source_folder):
|
||||
for file in files:
|
||||
name, ext = os.path.splitext(file)
|
||||
if ext == i:
|
||||
path = os.path.join(root, name)
|
||||
if ext == '.arkprofile' or name.startswith(map):
|
||||
path = os.path.join(root, file)
|
||||
mytar.add(path)
|
||||
print(path, colorama.Fore.GREEN + "- перемещен" + colorama.Style.RESET_ALL)
|
||||
print_line(f"{path} - сохранён", flag="GREEN")
|
||||
print_line(f"Конфиги сохранены в {target}", flag="GREEN")
|
||||
elif g == "7days":
|
||||
pass
|
||||
else:
|
||||
print("Поддерживает только ark и 7days")
|
||||
|
||||
|
||||
|
||||
|
||||
def unpack(src, dst):
|
||||
"""Добавить документацию"""
|
||||
with open(src, 'rb') as f:
|
||||
@ -175,7 +179,7 @@ def unpack(src, dst):
|
||||
else:
|
||||
msg = "The signature and format version is incorrect. Signature was {} should be 2653586369.".format(sigver)
|
||||
logging.critical(msg)
|
||||
return print_line(msg,flag="RED")
|
||||
return print_line(msg, flag="RED")
|
||||
|
||||
# Write the extracted data to disk
|
||||
with open(dst, 'wb') as f:
|
||||
@ -202,7 +206,7 @@ def print_line(*text, flag="", sep=" ", end="\n"):
|
||||
color = colorama.Fore.WHITE
|
||||
len_text = str(*text)
|
||||
len_text = len_text.split("\n")
|
||||
max_length = max(len(string) for string in len_text)+2
|
||||
max_length = max(len(string) for string in len_text) + 2
|
||||
print(color + "." * max_length)
|
||||
print(color, *text, sep=sep, end=end)
|
||||
print(color + "." * max_length + colorama.Style.RESET_ALL)
|
||||
@ -222,14 +226,15 @@ def check_int(number=""):
|
||||
|
||||
|
||||
@hlna.command(help='Выбор игры и сбор настроек для сервера(-ов)')
|
||||
def config():
|
||||
count_game = check_int("""Выберите игру для конфигурирования
|
||||
1. ARK Survival Evolved
|
||||
2. 7 Days to Die
|
||||
: """)
|
||||
if count_game == 1:
|
||||
config_ark()
|
||||
elif count_game == 2:
|
||||
@click.argument('g', nargs=1)
|
||||
@click.option('-b', required=False, default=False, help="Конфигурация бэкапов игры")
|
||||
def config(g, b):
|
||||
if g == "ark":
|
||||
if b:
|
||||
config_backup(g)
|
||||
else:
|
||||
config_ark()
|
||||
elif g == "7days":
|
||||
config_7daystodie()
|
||||
else:
|
||||
print_line("Пока есть только ARK и 7Days xD", flag="YELLOW")
|
||||
@ -240,7 +245,7 @@ def ports_array():
|
||||
query_p = []
|
||||
rcon_p = []
|
||||
for k in list_config:
|
||||
data_port = read_yaml(k, g="ark")
|
||||
data_port = read_yaml(g="ark", m=k)
|
||||
port_s.append(data_port['Port'])
|
||||
query_p.append(data_port['QueryPort'])
|
||||
rcon_p.append(data_port['RCONPort'])
|
||||
@ -370,7 +375,6 @@ def config_nameserver(map_s):
|
||||
list_config.append(map_s)
|
||||
break
|
||||
else:
|
||||
list_allconfigs = list_config + delist_config
|
||||
if name_server in list_allconfigs:
|
||||
choose_reconf = input("""Сервер существует. Перенастроить? (по умолчанию) нет
|
||||
1. Да
|
||||
@ -450,7 +454,7 @@ def config_ark(list_config=list_config):
|
||||
if list_config:
|
||||
print_line("Уже установленные карты: ", flag="CYAN")
|
||||
for i in list_config:
|
||||
data = read_yaml(i, g="ark")
|
||||
data = read_yaml(g="ark", m=i)
|
||||
print_line(f"Карта - {i} : Имя сервера {data['SessionName']}", flag="CYAN")
|
||||
count_maps = config_nummap()
|
||||
for i in range(count_maps):
|
||||
@ -486,11 +490,62 @@ def config_7daystodie():
|
||||
systemd_unit_create("7Days", config_7days)
|
||||
|
||||
|
||||
@hlna.command(help='Удаление конфигурации сервера')
|
||||
@click.argument('g', nargs=1)
|
||||
@click.option('-m', default='all', help="Название карты для запуска или all для запуска всех карт")
|
||||
def config_backup(g, m):
|
||||
if g == "ark":
|
||||
name_server = choose_map(g, m)
|
||||
if m == "all":
|
||||
print_line(f"М: {m}, name_server: {name_server}")
|
||||
all_empty = True # флаг
|
||||
for i in name_server:
|
||||
print_line(f"{i},{g}")
|
||||
data = read_yaml(g, m=i, flag=True)
|
||||
if 'ark_backup' not in data or data['ark_backup'] == "" or data['ark_backup'] == "False":
|
||||
all_empty = False # меняем флаг, если есть значение, которое не пустое
|
||||
if all_empty:
|
||||
config_backup_settings(g="ark") # если все значения пустые, то вызываем config_backup_settings
|
||||
else:
|
||||
pass # Тут должна быть проверка на то в каких серверах есть настройки резервного копирования, а в каких нет + вывод этой информации
|
||||
# print_line("Уже настроен для карт: ", flag="CYAN")%
|
||||
# name_servers = choose_map(g, m)
|
||||
# print_line(name_servers)
|
||||
# for i in name_servers:
|
||||
# data = read_yaml(g="ark", i)
|
||||
# print_line(f"Карта - {i} : Имя сервера {data['SessionName']}", flag="CYAN")
|
||||
# choose_reconf = input("""Перенастроить? (по умолчанию) нет
|
||||
# 1. Да
|
||||
# 2. Нет
|
||||
# :""")
|
||||
# if choose_reconf == "" or "2":
|
||||
# pass
|
||||
# elif choose_reconf == "1":
|
||||
# config_backup_settings(g)
|
||||
# else:
|
||||
# return config_backup(g)
|
||||
# elif g == "7days":
|
||||
# print_line("Пока не работает")
|
||||
|
||||
|
||||
def config_backup_settings(g):
|
||||
print_line(f"Входим в config_backup_settings - {g}")
|
||||
if g == "ark":
|
||||
|
||||
data = read_yaml(g)
|
||||
elif g == "7days":
|
||||
print_line("Пока не работает")
|
||||
|
||||
def xml_parser():
|
||||
"""добавить документацию"""
|
||||
print_line("Я пока не умею парсить xml))", flag="RED")
|
||||
|
||||
|
||||
def ini_parser():
|
||||
"""добавить документацию"""
|
||||
print_line("Я пока не умею парсить ini))", flag="RED")
|
||||
|
||||
|
||||
def yaml_create(g, 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=""):
|
||||
@ -536,7 +591,7 @@ def systemd_unit_create(g, name_server=list_config, config_7days=""):
|
||||
g = g.lower()
|
||||
if g == "ark":
|
||||
id_game = "376030"
|
||||
data = read_yaml(name_server, g="ark")
|
||||
data = read_yaml(g="ark", m=name_server)
|
||||
ntff = "" if not data['Cluster'] else "-NoTransferFromFiltering"
|
||||
unit_dir_server = dir_server_ark
|
||||
dir_server_exec = f"{dir_server_ark}ShooterGame/Binaries/Linux/"
|
||||
@ -588,7 +643,7 @@ def remove(g, m):
|
||||
@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',required=True, nargs=-1)
|
||||
@click.argument('id_mods_ark', required=True, nargs=-1)
|
||||
def mod(g, m, i, id_mods_ark):
|
||||
g = g.lower()
|
||||
if g == "ark":
|
||||
@ -599,7 +654,7 @@ def mod(g, m, i, id_mods_ark):
|
||||
|
||||
id_mods = ""
|
||||
for id_mod in id_mods_ark:
|
||||
id_mods += ","+id_mod
|
||||
id_mods += "," + id_mod
|
||||
|
||||
dir_mod_ark = f"{dir_mods_ark}/{id_mod}"
|
||||
if not os.path.isfile(f"{dir_mod_ark}.mod"):
|
||||
@ -618,8 +673,9 @@ def mod(g, m, i, id_mods_ark):
|
||||
id_mods = id_mods[1:]
|
||||
id_mods_ark = id_mods
|
||||
for i in name_server:
|
||||
data = read_yaml(i, g="ark")
|
||||
yaml_create("ark", data['ServerPath'], data['Cluster'], data['map'], data['SessionName'], data['Port'], data['QueryPort'],
|
||||
data = read_yaml(g="ark", m=i)
|
||||
yaml_create("ark", data['ServerPath'], data['Cluster'], data['map'], data['SessionName'], data['Port'],
|
||||
data['QueryPort'],
|
||||
data['RCONEnabled'], data['RCONPort'], data['ServerAdminPassword'], data['ServerPassword'],
|
||||
data['MaxPlayers'], id_mods_ark, data['clusterid'], data['clusterdir'], data['Listen'])
|
||||
else:
|
||||
@ -664,7 +720,7 @@ def modupdateall(g, m):
|
||||
print_line("Проверяем обновление всех установленных модов", flag="CYAN")
|
||||
if not os.path.isdir(dir_mods_ark):
|
||||
create_dir(dir_mods_ark)
|
||||
for file in os.listdir(dir_mods_ark): # Поменять на чтение списка модов из yaml
|
||||
for file in os.listdir(dir_mods_ark): # Поменять на чтение списка модов из yaml
|
||||
if os.path.isfile(os.path.join(dir_mods_ark, file)):
|
||||
if file.endswith('.mod'):
|
||||
id_mod = file.split(".")[0]
|
||||
@ -685,7 +741,8 @@ def moddownload(g, m, id_mod, dir_mod_ark):
|
||||
return
|
||||
if os.path.isfile(f"{dir_workshop_ark}/appworkshop_{id_game_workshop}.acf"):
|
||||
os.system(f"rm {dir_workshop_ark}/appworkshop_{id_game_workshop}.acf")
|
||||
os.system(f"steamcmd +force_install_dir {home_dir}/.local/share/Steam/ +login anonymous +workshop_download_item {id_game_workshop} {id_mod} +quit")
|
||||
os.system(
|
||||
f"steamcmd +force_install_dir {home_dir}/.local/share/Steam/ +login anonymous +workshop_download_item {id_game_workshop} {id_mod} +quit")
|
||||
try:
|
||||
for curdir, subdirs, files in os.walk(os.path.join(dir_steam_workshop)):
|
||||
for file in files:
|
||||
@ -742,17 +799,17 @@ def moddownload(g, m, id_mod, dir_mod_ark):
|
||||
else:
|
||||
with open(f"{dir_mods_ark}.mod", "wb") as f_out:
|
||||
f_out.write(b'\x01\x00\x00\x00\x08\x00\x00\x00ModType\x00\x02\x00\x00\x001\x00')
|
||||
x = os.system(f"mv {dir_workshop_ark}/appworkshop_{id_game_workshop}.acf {dir_mod_ark}/appworkshop_{id_game_workshop}.acf")
|
||||
x = os.system(
|
||||
f"mv {dir_workshop_ark}/appworkshop_{id_game_workshop}.acf {dir_mod_ark}/appworkshop_{id_game_workshop}.acf")
|
||||
|
||||
|
||||
@hlna.command(help='Выключение/включение серверов (без удаления) <hlna switch -m all -d')
|
||||
@click.argument('g', nargs=1)
|
||||
@click.option("-m", required=True, help="Название cервера")
|
||||
@click.option("-e/-d", default=True, help="-e активировать карты, -d деактивировать")
|
||||
def switch(g, m, e): #добавить all
|
||||
def switch(g, m, e): # добавить all
|
||||
g = g.lower()
|
||||
if g == "ark":
|
||||
print_line("Вход в ark", flag="RED")
|
||||
m = m.split(",")
|
||||
if not os.path.isdir(dir_deactivated):
|
||||
create_dir(dir_deactivated)
|
||||
@ -763,33 +820,32 @@ def switch(g, m, e): #добавить all
|
||||
state_msg = "активных" if e else "не активных"
|
||||
for i in m:
|
||||
try:
|
||||
print_line("Вход в try", flag="RED")
|
||||
state_config1 = list_config if e else delist_config
|
||||
if i in state_config1:
|
||||
print_line("Вход в определение статуса", flag="RED")
|
||||
print_line(f"Карта {i} уже есть в {state_msg}", flag="CYAN")
|
||||
continue
|
||||
data = read_yaml(i, not e, g="ark")
|
||||
data = read_yaml(g="ark", m=i, flag=not e)
|
||||
print_line(f"дата {data}", flag="RED")
|
||||
if e:
|
||||
if e: # добавить проверку занятости имени
|
||||
data['Port'] = ports(data['Port'], port_s, e)
|
||||
data['QueryPort'] = ports(data['QueryPort'], port_s, e)
|
||||
data['RCONPort'] = ports(data['RCONPort'], port_s, e)
|
||||
yaml_create("ark", data['ServerPath'], data['Cluster'], data['map'], data['SessionName'], data['Port'],
|
||||
yaml_create("ark", data['ServerPath'], data['Cluster'], data['map'], data['SessionName'],
|
||||
data['Port'],
|
||||
data['QueryPort'], data['RCONEnabled'], data['RCONPort'], data['ServerAdminPassword'],
|
||||
data['ServerPassword'], data['MaxPlayers'], data['ModsId'], data['clusterid'], data['clusterdir'],
|
||||
data['ServerPassword'], data['MaxPlayers'], data['ModsId'], data['clusterid'],
|
||||
data['clusterdir'],
|
||||
data['Listen'])
|
||||
x = os.system(
|
||||
f"rm {dir_deactivated}{i} >> {dir_logs}{date} 2>&1")
|
||||
with open(f"{dir_logs}{date}.log", "a") as f:
|
||||
f.write(f"[{t}] Сервер {i} перемещён из {state_msg}\n")# переписать эту залупу
|
||||
f.write(f"[{t}] Сервер {i} перемещён из {state_msg}\n") # переписать эту залупу
|
||||
else:
|
||||
print_line("Вход в отключение", flag="RED")
|
||||
x = os.system(f"mv {dir_maps_ark}{i} {dir_deactivated} >> {dir_logs}{date} 2>&1")
|
||||
with open(f"{dir_logs}{date}.log", "a") as f:
|
||||
f.write(f"[{t}] Сервер {i} перемещён из {state_msg}\n")
|
||||
if x == 0:
|
||||
#start = "start" if e else "stop"
|
||||
# start = "start" if e else "stop"
|
||||
enable = "enable" if e else "disable"
|
||||
os.system(f"systemctl --user {enable} ark_{i.lower()}")
|
||||
print_line(f"Выполнено для сервера- {i}", flag="GREEN")
|
||||
@ -806,7 +862,7 @@ def status(list_config=list_config):
|
||||
print_line("Сервера не сконфигурированы", flag="RED")
|
||||
else:
|
||||
for i in list_config:
|
||||
data = read_yaml(i, g="ark")
|
||||
data = read_yaml(g="ark", m=i)
|
||||
x = os.system(f"lsof -w -i :{data['Port']}")
|
||||
if x == 0:
|
||||
print_line("Сервер запущен", flag="GREEN")
|
||||
@ -833,7 +889,7 @@ def status(list_config=list_config):
|
||||
x = input("Есть неактивные сервера, показать Y/n: ")
|
||||
if x != "n":
|
||||
for i in delist_config:
|
||||
data = read_yaml(i, False)
|
||||
data = read_yaml(i, flag=False)
|
||||
print_line(f"""
|
||||
Имя сервера: {i}
|
||||
Карта: {data['map']}
|
||||
@ -848,8 +904,8 @@ def status(list_config=list_config):
|
||||
Максимальное кол-во игроков: {data['MaxPlayers']}""", flag="YELLOW")
|
||||
|
||||
|
||||
@hlna.command(help='Запуск, сконфигурированного сервера или кластера <hlna start -g ark -m all>')
|
||||
@click.option('-g', required=True, help="Название игры для запуска. (ark, 7days")
|
||||
@hlna.command(help='Запуск, сконфигурированного сервера или кластера <hlna start ark -m all>')
|
||||
@click.argument('g', nargs=1)
|
||||
@click.option('-m', default='all', help="Название карты для запуска или all для запуска все карт")
|
||||
def start(g, m):
|
||||
"""Запускает сервер выбранной игры"""
|
||||
@ -861,8 +917,8 @@ def start(g, m):
|
||||
start_stop("start", g, m)
|
||||
|
||||
|
||||
@hlna.command(help='Остановка, сконфигурированного сервера или кластера <hlna stop -g ark -m all>')
|
||||
@click.option('-g', required=True, help="Название игры для запуска. (ark, 7days")
|
||||
@hlna.command(help='Остановка, сконфигурированного сервера или кластера <hlna stop ark -m all>')
|
||||
@click.argument('g', nargs=1)
|
||||
@click.option('-m', default='all', help="Название карты для запуска или all для запуска все карт")
|
||||
def stop(g, m):
|
||||
g = g.lower()
|
||||
@ -871,8 +927,8 @@ def stop(g, m):
|
||||
start_stop("stop", g, m)
|
||||
|
||||
|
||||
@hlna.command(help='Перезапуск, сконфигурированного сервера или кластера <hlna restart -g ark -m all>')
|
||||
@click.option('-g', required=True, help="Название игры для запуска. (ark, 7days")
|
||||
@hlna.command(help='Перезапуск, сконфигурированного сервера или кластера <hlna restart ark -m all>')
|
||||
@click.argument('g', nargs=1)
|
||||
@click.option('-m', default='all', help="Название карты для запуска или all для запуска все карт")
|
||||
def restart(g, m):
|
||||
g = g.lower()
|
||||
@ -897,10 +953,10 @@ def start_stop(action, g, m):
|
||||
g = g.lower()
|
||||
if g == "ark":
|
||||
x = check_exist_servers(g)
|
||||
if x:
|
||||
name_servers = choose_map(g,m) if m !='all' else list_config
|
||||
if x:
|
||||
name_servers = choose_map(g, m) if m != 'all' else list_config
|
||||
for i in name_servers:
|
||||
data = read_yaml(i, g="ark", flag=True)
|
||||
data = read_yaml(g="ark", m=i, flag=True)
|
||||
if action == "stop" or action == "restart":
|
||||
rcon_local(i, "SaveWorld")
|
||||
x = os.system(f"systemctl --user {action} ark_{data['SessionName'].lower()}.service")
|
||||
@ -915,20 +971,18 @@ def start_stop(action, g, m):
|
||||
print_line("доступные игры: ark и 7days")
|
||||
|
||||
|
||||
def read_yaml(list_config=list_config, flag=True, m="", g=""):
|
||||
def read_yaml(g="", m="", flag=True):
|
||||
"""Читает конфиги активных или неактивных карт в зависимости от флага и отдаёт данные туда где их запросили"""
|
||||
print_line("Вход в read_yaml", flag="RED")
|
||||
g = g.lower()
|
||||
print_line(f"g: {g}, m: {m}")
|
||||
if g == "ark":
|
||||
print_line("Вход в арк в чтении", flag="RED")
|
||||
if m == "all":
|
||||
list_config=list_config
|
||||
path_yaml = f"{dir_maps_ark}{list_config}" if flag else f"{dir_deactivated}{list_config}"
|
||||
print_line("Не правильный вызов yaml, должен вызываться из цикла")
|
||||
path_yaml = f"{dir_maps_ark}{m}" if flag else f"{dir_deactivated}{m}"
|
||||
elif g == "path_server":
|
||||
path_yaml = dir_config + "config"
|
||||
with open(path_yaml, "r") as yamlfile:
|
||||
data = yaml.load(yamlfile, Loader=yaml.FullLoader)
|
||||
print_line("Выход из read_yaml", flag="RED")
|
||||
return data[0] # возвращаем словарь со всеми значениями
|
||||
|
||||
|
||||
@ -939,8 +993,9 @@ def choose_map(g, m, list_config=list_config):
|
||||
if g == "ark":
|
||||
dict_mapname = {}
|
||||
dict_allmapname = []
|
||||
print_line(list_config)
|
||||
for i in list_config:
|
||||
data = read_yaml(i, g="ark")
|
||||
data = read_yaml(g="ark", m=i)
|
||||
dict_mapname[data['SessionName']] = data['map']
|
||||
dict_allmapname.append(data['SessionName'])
|
||||
name_servers = []
|
||||
@ -950,7 +1005,7 @@ def choose_map(g, m, list_config=list_config):
|
||||
if list_config != []: # Перенести выше для проверки наличия конфигов
|
||||
if m == "all":
|
||||
new_arr = dict_allmapname
|
||||
print_line(f"Выполняется для карт(-ы) {name_servers}", flag="CYAN")
|
||||
print_line(f"Выполняется для карт(-ы) {new_arr}", flag="CYAN")
|
||||
else:
|
||||
if name_servers:
|
||||
name_servers = sorted(name_servers)
|
||||
@ -990,7 +1045,7 @@ def rcon_local(m, c):
|
||||
if list_config:
|
||||
rcon_ports = []
|
||||
for i in list_config:
|
||||
data = read_yaml(i, g="ark")
|
||||
data = read_yaml(g="ark", m=i)
|
||||
dict_mapname[data['RCONPort']] = data['map']
|
||||
dict_adminpwd[data['RCONPort']] = data['ServerAdminPassword']
|
||||
if m == "all":
|
||||
@ -1030,6 +1085,7 @@ dir_unit = f"{home_dir}/.config/systemd/user/"
|
||||
dir_logs = f"{dir_config}logs/"
|
||||
|
||||
dir_server_ark = f"{dir_server}ARK/"
|
||||
dir_ark_save = f"{dir_server_ark}ShooterGame/Saved/SavedArks/"
|
||||
dir_workshop_ark = f"{home_dir}/.local/share/Steam/steamapps/workshop"
|
||||
dir_shooter = "ShooterGame"
|
||||
dir_mods_ark = f"{dir_server_ark}ShooterGame/Content/Mods"
|
||||
|
Loading…
Reference in New Issue
Block a user