55 lines
1.2 KiB
Python
55 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
"""
|
||
migrate — Docker Service Migration Tool
|
||
Bootstrap: проверяет Python3 и запускает core/main.py
|
||
"""
|
||
|
||
import os
|
||
import sys
|
||
import subprocess
|
||
import shutil
|
||
import json
|
||
import textwrap
|
||
|
||
REQUIRED_PYTHON = (3, 8)
|
||
|
||
|
||
def check_python():
|
||
if sys.version_info < REQUIRED_PYTHON:
|
||
print("[FATAL] Нужен Python >= 3.8")
|
||
sys.exit(1)
|
||
|
||
|
||
def find_project_root():
|
||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||
possible = [script_dir, os.path.join(script_dir, "docker-migrate")]
|
||
for p in possible:
|
||
core = os.path.join(p, "core", "main.py")
|
||
if os.path.isfile(core):
|
||
return p
|
||
return None
|
||
|
||
|
||
def main():
|
||
check_python()
|
||
root = find_project_root()
|
||
if not root:
|
||
print("[FATAL] Не найдена папка проекта (core/main.py)")
|
||
sys.exit(1)
|
||
|
||
core_path = os.path.join(root)
|
||
sys.path.insert(0, core_path)
|
||
|
||
try:
|
||
from core.main import main as core_main
|
||
except ImportError as e:
|
||
print(f"[FATAL] Не удалось загрузить ядро: {e}")
|
||
sys.exit(1)
|
||
|
||
core_main()
|
||
|
||
|
||
if __name__ == "__main__":
|
||
main()
|