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() | |