59 lines
1.1 KiB
Go
59 lines
1.1 KiB
Go
package config
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
|
|
"gopkg.in/yaml.v3"
|
|
)
|
|
|
|
// Yaml struct of config
|
|
type YamlConfig struct {
|
|
//证书配置
|
|
CA struct {
|
|
RootCert string `yaml:"rootCert"` //root CA证书存放路径
|
|
Cert string `yaml:"cert"` // 服务端CA证书存放路径
|
|
PrivateKey string `yaml:"privateKey"` // 服务端私钥存放路径
|
|
Check bool `yaml:"check"` // 是否开启服务端证书检查功能
|
|
} `json:"ca"`
|
|
}
|
|
|
|
var CaConfig YamlConfig
|
|
|
|
func ReadConfig(configFile string) {
|
|
yamlFile, err := os.ReadFile(configFile)
|
|
if err != nil {
|
|
fmt.Println("Read yaml config file error:", err)
|
|
os.Exit(2)
|
|
}
|
|
|
|
err = yaml.Unmarshal(yamlFile, &CaConfig)
|
|
if err != nil {
|
|
fmt.Println("Unmarshal error:", err)
|
|
os.Exit(3)
|
|
}
|
|
}
|
|
|
|
var UserName *string
|
|
|
|
const defaultConfigFile = "./etc/cmca.yaml"
|
|
|
|
func init() {
|
|
cfile := flag.String("c", defaultConfigFile, "config file")
|
|
pv := flag.Bool("v", false, "print version")
|
|
ph := flag.Bool("h", false, "print help")
|
|
UserName = flag.String("u", "admin", "user name")
|
|
|
|
flag.Parse()
|
|
if *pv {
|
|
os.Exit(0)
|
|
}
|
|
if *ph {
|
|
flag.Usage()
|
|
os.Exit(0)
|
|
}
|
|
|
|
ReadConfig(*cfile)
|
|
}
|