gopkg/util/cli.go

47 lines
1.4 KiB
Go
Raw Permalink Normal View History

2021-08-14 14:11:06 +08:00
// Package util ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 1:53 下午 2021/8/14
package util
import "flag"
// ParseCLIParameter 解析命令含参数
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 1:54 下午 2021/8/14
2021-08-14 14:32:54 +08:00
func ParseCLIParameter(parameterNameList []string) map[string]string {
2021-08-14 15:43:40 +08:00
cliParameterTable := make(map[string]*string)
2021-08-14 14:11:06 +08:00
for _, parameterName := range parameterNameList {
2021-08-14 15:43:40 +08:00
cliParameterTable[parameterName] = flag.String(parameterName, "", parameterName)
2021-08-14 14:11:06 +08:00
}
// 这里有一个非常中的操作,转换,必须调用该方法
flag.Parse()
2021-08-14 15:43:40 +08:00
formatTable := make(map[string]string)
for k, v := range cliParameterTable {
formatTable[k] = *v
}
return formatTable
2021-08-14 14:11:06 +08:00
}
// ParseCLIParameterWithDefaultValue 解析命令行参数,并提供可选的默认值
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 1:55 下午 2021/8/14
2021-08-14 14:32:54 +08:00
func ParseCLIParameterWithDefaultValue(parameterParseTable map[string]string) map[string]string {
2021-08-14 15:43:40 +08:00
cliParameterTable := make(map[string]*string)
2021-08-14 14:11:06 +08:00
for parameterName, defaultValue := range parameterParseTable {
2021-08-14 15:43:40 +08:00
cliParameterTable[parameterName] = flag.String(parameterName, defaultValue, parameterName)
2021-08-14 14:11:06 +08:00
}
// 这里有一个非常中的操作,转换,必须调用该方法
flag.Parse()
2021-08-14 15:43:40 +08:00
formatTable := make(map[string]string)
for k, v := range cliParameterTable {
formatTable[k] = *v
}
return formatTable
2021-08-14 14:11:06 +08:00
}