package shop.alien.util.port;

import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;

/**
 * 设置可用端口
 *
 * @author ssk
 * @version 1.0
 * @date 2024/5/14 10:32
 */
@Slf4j
public class StartCommand {

    /**
     * 查询启动端口
     *
     * @param args 启动参数
     */
    public StartCommand(String[] args, Integer portMin, Integer portMax) {
        boolean isServerPort = false;
        String serverPort = "";
        if (args != null) {
            for (String arg : args) {
                if (StringUtils.hasText(arg) && arg.startsWith("--server.port")) {
                    isServerPort = true;
                    serverPort = arg;
                    break;
                }
            }
        }

        //没有指定端口，则随机生成一个可用的端口
        if (!isServerPort) {
            int port = ServerPortUtils.getAvailablePort(portMin, portMax);
            System.setProperty("server.port", String.valueOf(port));
        } else {//指定了端口，则以指定的端口为准
            log.info("current server.port=" + serverPort.split("=")[1]);
            System.setProperty("server.port", serverPort.split("=")[1]);
        }
    }

}