попытка реализации змейки
This commit is contained in:
parent
61f653be2b
commit
10b89ce25f
126
hlna.py
126
hlna.py
@ -5,6 +5,7 @@ import sys
|
||||
import zlib
|
||||
import time
|
||||
import struct
|
||||
import curses
|
||||
import tarfile
|
||||
import logging
|
||||
import datetime
|
||||
@ -65,56 +66,6 @@ def hlna():
|
||||
pass
|
||||
|
||||
|
||||
@hlna.command(help='Восстановление бэкапов серверов в <hlna restore ark>')
|
||||
@click.argument('g', nargs=1)
|
||||
@click.option('-m', default='all', help="Название карты для запуска или all для запуска всех карт")
|
||||
@click.option('-d', required=True, help="Путь до zip архива")
|
||||
def restore(g, m, d):
|
||||
"""Получение пути к файлам внутри архива"""
|
||||
with tarfile.open(d, 'r') as tar_file:
|
||||
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_line(f"i - перемещен", flag="GREEN")
|
||||
print_line(f"Бэкап {d} восстановлен", flag="GREEN")
|
||||
|
||||
|
||||
@hlna.command(help='Бэкап серверов выбранной игры <hlna backup ark')
|
||||
@click.argument('g', nargs=1)
|
||||
@click.option('-m', default='all', help="Название карты для запуска или all для запуска всех карт")
|
||||
def backup(g, m):
|
||||
if g == "ark" or g == "ark_test":
|
||||
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_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:
|
||||
for source_folder in source:
|
||||
for root, dirs, files in os.walk(source_folder):
|
||||
for file in files:
|
||||
name, ext = os.path.splitext(file)
|
||||
if ext == '.arkprofile' or name.startswith(map):
|
||||
path = os.path.join(root, file)
|
||||
mytar.add(path)
|
||||
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:
|
||||
@ -212,6 +163,31 @@ def print_line(*text, flag="", sep=" ", end="\n"):
|
||||
print(color + "." * max_length + colorama.Style.RESET_ALL)
|
||||
|
||||
|
||||
def zmeyuka(stdscr, func):
|
||||
curses.curs_set(0)
|
||||
stdscr.nodelay(1)
|
||||
|
||||
x = 0
|
||||
y = 0
|
||||
|
||||
stdscr.addstr(y, x, "⠋")
|
||||
stdscr.refresh()
|
||||
|
||||
def nachalo_stroki():
|
||||
nonlocal x, y
|
||||
while True:
|
||||
stdscr.addstr(0, 0, "⠋", curses.A_REVERSE)
|
||||
stdscr.refresh()
|
||||
time.sleep(0.1)
|
||||
stdscr.addstr(y, x, " ")
|
||||
x += 1
|
||||
if x > curses.COLS - 1:
|
||||
x = 0
|
||||
y +=1
|
||||
stdscr.addstr(y, x, "⠋")
|
||||
stdscr.refresh()
|
||||
|
||||
|
||||
def check_int(number=""):
|
||||
"""Проверка на ввод числа"""
|
||||
while True:
|
||||
@ -225,6 +201,56 @@ def check_int(number=""):
|
||||
print_line("Введите число", flag="CYAN")
|
||||
|
||||
|
||||
@hlna.command(help='Восстановление бэкапов серверов в <hlna restore ark>')
|
||||
@click.argument('g', nargs=1)
|
||||
@click.option('-m', default='all', help="Название карты для запуска или all для запуска всех карт")
|
||||
@click.option('-d', required=True, help="Путь до zip архива")
|
||||
def restore(g, m, d):
|
||||
"""Получение пути к файлам внутри архива"""
|
||||
with tarfile.open(d, 'r') as tar_file:
|
||||
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_line(f"i - перемещен", flag="GREEN")
|
||||
print_line(f"Бэкап {d} восстановлен", flag="GREEN")
|
||||
|
||||
|
||||
@hlna.command(help='Бэкап серверов выбранной игры <hlna backup ark')
|
||||
@click.argument('g', nargs=1)
|
||||
@click.option('-m', default='all', help="Название карты для запуска или all для запуска всех карт")
|
||||
def backup(g, m):
|
||||
if g == "ark" or g == "ark_test":
|
||||
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_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:
|
||||
for source_folder in source:
|
||||
for root, dirs, files in os.walk(source_folder):
|
||||
for file in files:
|
||||
name, ext = os.path.splitext(file)
|
||||
if ext == '.arkprofile' or name.startswith(map):
|
||||
path = os.path.join(root, file)
|
||||
mytar.add(path)
|
||||
print_line(f"{path} - сохранён", flag="GREEN")
|
||||
print_line(f"Конфиги сохранены в {target}", flag="GREEN")
|
||||
elif g == "7days":
|
||||
pass
|
||||
else:
|
||||
print("Поддерживает только ark и 7days")
|
||||
|
||||
|
||||
@hlna.command(help='Выбор игры и сбор настроек для сервера(-ов)')
|
||||
@click.argument('g', nargs=1)
|
||||
@click.option('-b', required=False, default=False, help="Конфигурация бэкапов игры")
|
||||
|
Loading…
Reference in New Issue
Block a user