—> 试着用 cobra-cli/README.md at main · spf13/cobra-cli cobra-generator 生成一个命令行小工具吧!
参考文章: 万字长文——Go 语言现代命令行框架 Cobra 详解 - 知乎
Go 命令行参数解析工具 pflag 使用 | 江湖十年 | 学而不思则罔,思而不学则殆。
https://github.com/pelletier/go-toml
import (
"fmt"
"github.com/pelletier/go-toml"
)
type MyConfig struct {
Version int
Name string
Tags []string
RegionId string `toml:"region_id"`
}
func Unmarshal() {
doc := `
version = 2
name = "go-toml"
tags = ["go", "toml"]
region_id = "cn-beijing"
`
var cfg MyConfig
err := toml.Unmarshal([]byte(doc), &cfg)
if err != nil {
panic(err)
}
fmt.Println("version:", cfg.Version)
fmt.Println("name:", cfg.Name)
fmt.Println("tags:", cfg.Tags)
fmt.Println("regionId:", cfg.RegionId)
fmt.Println("==================")
confFile, err := toml.LoadFile("/etc/tomltest/tomltest.conf")
if err != nil {
panic(err)
}
var cfg2 MyConfig
confFile.Unmarshal(&cfg2)
fmt.Println("version:", cfg2.Version)
fmt.Println("name:", cfg2.Name)
fmt.Println("tags:", cfg2.Tags)
fmt.Println("regionId:", cfg2.RegionId)
}
toml:"region_id"
部分, 代表的是映射的key, 称为 **Struct tags
**toml.LoadFile
来读取配置文件