package config

import (
	"fmt"
	"gopkg.in/yaml.v2"
	"os"
)

type node struct {
	Name string `yaml:"name"`
	Ip   string `yaml:"ip"`
}

type restartCmd struct {
	Dir  string   `yaml:"dir"`
	Name string   `yaml:"name"`
	Args []string `yaml:"args"`
}

type localConfig struct {
	Node                 node       `yaml:"node"`                    // 节点信息
	UrlGetOssConfig      string     `yaml:"url-get-oss-config"`      // 获取oss配置的url
	OssBasePrefix        string     `yaml:"oss-base-prefix"`         // 云端配置文件的位置
	EquipmentNo          string     `yaml:"equipment-no"`            // 当前设备的编号
	CloudConfigFilename  string     `yaml:"cloud-config-filename"`   // 云端配置文件名称
	CloudConfigLocalPath string     `yaml:"cloud-config-local-path"` // 将 oss 的配置文件下载到本地的位置
	SecretKey            string     `yaml:"secret-key"`              // 当前设备的密钥
	LogDir               string     `yaml:"log-dir"`                 // 日志目录
	RestartCmd           restartCmd `yaml:"restart-cmd"`             // 重启命令
}

var (
	LocalConfig     localConfig
	localConfigPath = "/mnt/media/sda1/cicv-data-closedloop/config/local-config.yaml"
)

func InitLocalConfig() {
	fmt.Println("初始化本地配置文件 - 开始：", localConfigPath)
	// 读取YAML文件内容
	content, err := os.ReadFile(localConfigPath)
	if err != nil {
		fmt.Println("程序退出。读取本地配置文件失败。", err)
		os.Exit(-1)
	}

	// 解析YAML内容
	err = yaml.Unmarshal(content, &LocalConfig)
	if err != nil {
		fmt.Println("程序退出。解析本地配置文件失败。", err)
		os.Exit(-1)
	}

	fmt.Println("初始化本地配置文件 - 成功：", LocalConfig)

}
