package com.cloudcc.core;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;

public class Tool {

    /**
     * 执行命令 cc get token 刷新token
     * 
     * @return 执行是否成功
     */
    public static Map<String, String> executeGetTokenCommand() {
        try {
            ProcessBuilder processBuilder = new ProcessBuilder("cc", "get", "config");
            processBuilder.redirectErrorStream(true);
            Process process = processBuilder.start();

            // 等待命令执行完成
            int exitCode = process.waitFor();
            if (exitCode != 0) {
                System.err.println("命令执行失败，退出码: " + exitCode);
                return null;
            }

            try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
                StringBuilder output = new StringBuilder();
                String line;
                while ((line = reader.readLine()) != null) {
                    output.append(line);
                }
                // 使用 fastjson 将 JSON 数据转换为 Map
                return JSONObject.parseObject(output.toString(),
                        new com.alibaba.fastjson.TypeReference<Map<String, String>>() {
                        });
            }

        } catch (IOException | InterruptedException e) {
            System.err.println("执行命令失败: " + e.getMessage());
            e.printStackTrace();
            return null; // 返回一个空的Map
        }
    }
}
