31 lines
844 B
Python
31 lines
844 B
Python
from pydantic import BaseModel, Field, ValidationError
|
|
from rich.console import Console
|
|
from typing import Dict, Any
|
|
from pathlib import Path
|
|
import typer
|
|
|
|
|
|
class ToolsConfig(BaseModel):
|
|
apktool_jar_url: str
|
|
apktool_wrapper_url: str
|
|
|
|
|
|
class Config(BaseModel):
|
|
tools: ToolsConfig
|
|
base: Dict[str, Any]
|
|
|
|
|
|
class PatchConfig(BaseModel):
|
|
enabled: bool = Field(True, description="Включить или отключить патч")
|
|
|
|
|
|
def load_config(console: Console) -> Config:
|
|
try:
|
|
return Config.model_validate_json(Path("config.json").read_text())
|
|
except FileNotFoundError:
|
|
console.print("[red]Файл config.json не найден")
|
|
raise typer.Exit(1)
|
|
except ValidationError as e:
|
|
console.print("[red]Ошибка валидации config.json:", e)
|
|
raise typer.Exit(1)
|