Files
docker-py-revanced/main.py
T
2023-08-22 11:05:01 +00:00

55 lines
1.7 KiB
Python

"""Entry point."""
import sys
from environs import Env
from loguru import logger
from src.config import RevancedConfig
from src.downloader.factory import DownloaderFactory
from src.exceptions import AppNotFound, PatchesJsonLoadFailed, PatchingFailed
from src.parser import Parser
from src.patches import Patches
from src.utils import check_java, extra_downloads
def main() -> None:
"""Entry point."""
from src.app import APP
env = Env()
env.read_env()
config = RevancedConfig(env)
extra_downloads(config)
check_java(config.dry_run)
logger.info(f"Will Patch only {config.apps}")
for app in config.apps:
logger.info(f"Trying to build {app}")
try:
app = APP(app_name=app, config=config)
patcher = Patches(config, app)
parser = Parser(patcher, config)
app_all_patches = patcher.get_app_configs(app)
patcher.include_exclude_patch(app, parser, app_all_patches)
downloader = DownloaderFactory.create_downloader(
app=app.app_name, patcher=patcher, config=config
)
app.download_file_name = downloader.download(app.app_version, app.app_name)
parser.patch_app(app)
except AppNotFound as e:
logger.info(f"Invalid app requested to build {e}")
except PatchesJsonLoadFailed:
logger.exception("Patches.json not found")
except PatchingFailed as e:
logger.exception(e)
except Exception as e:
logger.exception(f"Failed to build {app} because of {e}")
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
logger.error("Script halted because of keyboard interrupt.")
sys.exit(1)