Spaces:
Sleeping
Sleeping
| # msdl/__main__.py | |
| import signal | |
| import sys | |
| import argparse | |
| import os | |
| from pathlib import Path | |
| from msdl.config import ( | |
| BACKEND_DOCKERFILE_DIR, | |
| FRONTEND_DOCKERFILE_DIR, | |
| PACKAGE_DIR, | |
| PROJECT_ROOT, | |
| REACT_DOCKERFILE, | |
| TEMP_DIR, | |
| TEMPLATE_FILES, | |
| ) | |
| from msdl.docker_manager import ( | |
| check_docker_install, | |
| run_docker_compose, | |
| stop_and_remove_containers, | |
| update_docker_compose_paths, | |
| ) | |
| from msdl.i18n import ( | |
| setup_i18n, | |
| t, | |
| ) | |
| from msdl.utils import ( | |
| copy_templates_to_temp, | |
| copy_backend_dockerfile, | |
| copy_frontend_dockerfile, | |
| modify_docker_compose, | |
| ) | |
| from msdl.user_interaction import get_user_choices | |
| def signal_handler(signum, frame): | |
| print(t("TERMINATION_SIGNAL")) | |
| stop_and_remove_containers() | |
| sys.exit(0) | |
| def parse_args(): | |
| parser = argparse.ArgumentParser(description=t("CLI_DESCRIPTION")) | |
| parser.add_argument('--language', '-l', | |
| help=t("LANGUAGE_HELP"), | |
| choices=["en", "zh_CN"], | |
| default=None) | |
| parser.add_argument('--config-language', action='store_true', | |
| help=t("CONFIG_LANGUAGE_HELP")) | |
| return parser.parse_args() | |
| def main(): | |
| # Setup signal handler | |
| signal.signal(signal.SIGINT, signal_handler) | |
| signal.signal(signal.SIGTERM, signal_handler) | |
| # Initialize i18n | |
| setup_i18n() | |
| # Parse command line arguments | |
| args = parse_args() | |
| if args.language: | |
| # set_language(args.language) | |
| # Reinitialize i18n with new language | |
| setup_i18n() | |
| try: | |
| # Check if TEMP_DIR exists, if not, create it | |
| if not TEMP_DIR.exists(): | |
| TEMP_DIR.mkdir(parents=True, exist_ok=True) | |
| print(t("TEMP_DIR_CREATED", dir=str(TEMP_DIR))) | |
| check_docker_install() | |
| # Get user choices using the new module | |
| backend_language, model, model_format, search_engine = get_user_choices() | |
| # Copy template files | |
| copy_templates_to_temp(TEMPLATE_FILES) | |
| # Copy Dockerfiles | |
| copy_backend_dockerfile(model) | |
| copy_frontend_dockerfile() | |
| # Update paths in docker-compose.yml | |
| update_docker_compose_paths() | |
| # Modify docker-compose.yml based on user choices | |
| modify_docker_compose(model, backend_language, model_format, search_engine) | |
| stop_and_remove_containers() | |
| run_docker_compose() | |
| print(t("DOCKER_LAUNCHER_COMPLETE")) | |
| except KeyboardInterrupt: | |
| print(t("KEYBOARD_INTERRUPT")) | |
| # stop_and_remove_containers() | |
| sys.exit(0) | |
| except Exception as e: | |
| print(t("UNEXPECTED_ERROR", error=str(e))) | |
| # stop_and_remove_containers() | |
| sys.exit(1) | |
| if __name__ == "__main__": | |
| main() | |