-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
64 lines (55 loc) · 1.23 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package args
type StringArg struct {
Short string
Long string
NoEqual bool
Value string
}
type BoolArg struct {
Short string
Long string
Value bool
}
func (old *StringArg) SetValue(value string) StringArg {
return StringArg{
Short: old.Short,
Long: old.Long,
NoEqual: old.NoEqual,
Value: value,
}
}
func (old *BoolArg) SetValue(value bool) BoolArg {
return BoolArg{
Short: old.Short,
Long: old.Long,
Value: value,
}
}
func GenerateCommand(stringArgs map[int]StringArg, boolArgs map[int]BoolArg) []string {
var response []string
for _, arg := range stringArgs {
if arg.Value != "" && !arg.NoEqual {
if len(arg.Long) > 1 {
response = append(response, "--"+arg.Long+"=\""+arg.Value+"\"")
}else {
response = append(response, "-"+arg.Short+" \""+arg.Value+"\"")
}
}else if arg.Value != "" && arg.NoEqual {
if len(arg.Long) > 1 {
response = append(response, "--"+arg.Long+" \""+arg.Value+"\"")
}else {
response = append(response, "-"+arg.Short+" \""+arg.Value+"\"")
}
}
}
for _, arg := range boolArgs {
if arg.Value {
if len(arg.Long) > 1 {
response = append(response, "--"+arg.Long)
}else {
response = append(response, "-"+arg.Short)
}
}
}
return response
}