You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
3.1 KiB

from os import system
from db import *
from verify import *
from shutil import copyfile, make_archive, rmtree
print("(1) Создать сайт")
print("(2) Обновить сайт")
print("(3) Сменить тип")
op = input(">> ")
if op == "1":
from domain_check import *
print("\nДомены: .jet")
domain = input("Домен сайта: ")
if not domain_ok(domain):
print("Неправильный формат или домен.")
exit()
print("\n(1) Статичный / (2) Динамичный")
type = input("Тип: ")
# Создаём папку и ключи для подписи
system(f"mkdir mysites/{domain}")
key_gen(f"mysites/{domain}")
copyfile(f"mysites/{domain}.pem", f"mysites/{domain}/{domain}.pem")
if type == "1":
conf = {"type": "static", "ver": 1}
elif type == "2":
port = input("Порт: ")
conf = {"type": "dynamic", "ver": 1, "port": int(port)}
write(conf, f"mysites/{domain}/config.json")
# Архивируем и создаём сигнатуру для подтверждения неизменности архива
make_archive(f"mysites/{domain}", "zip", f"mysites/{domain}")
sign(f"mysites/{domain}.zip", f"mysites/{domain}.key", f"mysites/{domain}")
elif op == "2":
domain = input("\nДомен сайта: ")
if not os.path.exists(f"mysites/{domain}"):
print("Не существует такого сайта.")
exit()
# Обновляем версию
conf = read(f"mysites/{domain}/config.json")
conf["ver"] = conf["ver"] + 1
write(conf, f"mysites/{domain}/config.json")
# Архивируем и создаём сигнатуру для подтверждения неизменности архива
make_archive(f"mysites/{domain}", "zip", f"mysites/{domain}")
sign(f"mysites/{domain}.zip", f"mysites/{domain}.key", f"mysites/{domain}")
elif op == "3":
from os import rmdir
domain = input("\nДомен сайта: ")
if not os.path.exists(f"mysites/{domain}"):
print("Не существует такого сайта.")
exit()
print("\n(1) Статичный / (2) Динамичный")
type = input("Тип: ")
if type == "1":
conf = read(f"mysites/{domain}/config.json")
conf["type"] = "static"
conf.pop("port")
elif type == "2":
conf = read(f"mysites/{domain}/config.json")
port = input("Порт: ")
clean = input("Удалить все файлы (y/n): ")
if clean == "y":
# Удаляем папку, сохраняем конфиг и копируем публичный ключ
rmtree(f"mysites/{domain}")
system(f"mkdir mysites/{domain}")
copyfile(f"mysites/{domain}.pem", f"mysites/{domain}/{domain}.pem")
conf["type"] = "dynamic"
conf["port"] = int(port)
write(conf, f"mysites/{domain}/config.json")
# Обновляем версию
conf = read(f"mysites/{domain}/config.json")
conf["ver"] = conf["ver"] + 1
write(conf, f"mysites/{domain}/config.json")
# Архивируем и создаём сигнатуру для подтверждения неизменности архива
make_archive(f"mysites/{domain}", "zip", f"mysites/{domain}")
sign(f"mysites/{domain}.zip", f"mysites/{domain}.key", f"mysites/{domain}")