47 lines
1.4 KiB
Go
47 lines
1.4 KiB
Go
|
// 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
|
||
|
func ParseCLIParameter(parameterNameList []string) map[string]string {
|
||
|
cliParameterTable := make(map[string]*string)
|
||
|
for _, parameterName := range parameterNameList {
|
||
|
cliParameterTable[parameterName] = flag.String(parameterName, "", parameterName)
|
||
|
}
|
||
|
// 这里有一个非常中的操作,转换,必须调用该方法
|
||
|
flag.Parse()
|
||
|
formatTable := make(map[string]string)
|
||
|
for k, v := range cliParameterTable {
|
||
|
formatTable[k] = *v
|
||
|
}
|
||
|
return formatTable
|
||
|
}
|
||
|
|
||
|
// ParseCLIParameterWithDefaultValue 解析命令行参数,并提供可选的默认值
|
||
|
//
|
||
|
// Author : go_developer@163.com<白茶清欢>
|
||
|
//
|
||
|
// Date : 1:55 下午 2021/8/14
|
||
|
func ParseCLIParameterWithDefaultValue(parameterParseTable map[string]string) map[string]string {
|
||
|
cliParameterTable := make(map[string]*string)
|
||
|
for parameterName, defaultValue := range parameterParseTable {
|
||
|
cliParameterTable[parameterName] = flag.String(parameterName, defaultValue, parameterName)
|
||
|
}
|
||
|
// 这里有一个非常中的操作,转换,必须调用该方法
|
||
|
flag.Parse()
|
||
|
formatTable := make(map[string]string)
|
||
|
for k, v := range cliParameterTable {
|
||
|
formatTable[k] = *v
|
||
|
}
|
||
|
return formatTable
|
||
|
}
|