# Copyright (c) Alibaba, Inc. and its affiliates.
import argparse
import os
import os.path

from exp_utils import ExpManager, find_all_config

from swift.utils import *

logger = get_logger()


def parse_args():
    parser = argparse.ArgumentParser(description='Simple args for swift experiments.')
    parser.add_argument(
        '--config',
        type=str,
        default=None,
        required=True,
        help='The experiment config file',
    )
    parser.add_argument(
        '--save_dir',
        type=str,
        default='./experiment',
        required=False,
        help='The experiment output folder',
    )

    args = parser.parse_args()
    return args


def llm_exp():
    args = parse_args()
    config: str = args.config
    config = config.split(',')
    os.makedirs(args.save_dir, exist_ok=True)
    all_configs = []
    if not isinstance(config, list):
        config = [config]
    for dir_or_file in config:
        all_configs.extend(find_all_config(dir_or_file))
    args.config = all_configs
    exp_manager = ExpManager()
    exp_manager.begin(args)


if __name__ == '__main__':
    llm_exp()
