diff --git a/pkg/core/certmgr/internal/tester/args.go b/pkg/core/certmgr/internal/tester/args.go index 9af1d559..0e64255b 100644 --- a/pkg/core/certmgr/internal/tester/args.go +++ b/pkg/core/certmgr/internal/tester/args.go @@ -1,85 +1,9 @@ package tester import ( - "flag" - "fmt" + "github.com/certimate-go/certimate/pkg/core/internal/tester" ) -type argsParser struct { - prefix string - - keys []string - vals []any -} - -func Args(prefix string) *argsParser { - return &argsParser{ - prefix: prefix, - keys: make([]string, 0), - vals: make([]any, 0), - } -} - -func (p *argsParser) DefineBool(value *bool, name string, defaultValue ...bool) { - var dvalue bool - if len(defaultValue) > 0 { - dvalue = defaultValue[0] - } - - flag.BoolVar(value, p.prefix+name, dvalue, "") - p.keys = append(p.keys, name) - p.vals = append(p.vals, value) -} - -func (p *argsParser) DefineInt(value *int, name string, defaultValue ...int) { - var dvalue int - if len(defaultValue) > 0 { - dvalue = defaultValue[0] - } - - flag.IntVar(value, p.prefix+name, dvalue, "") - p.keys = append(p.keys, name) - p.vals = append(p.vals, value) -} - -func (p *argsParser) DefineInt64(value *int64, name string, defaultValue ...int64) { - var dvalue int64 - if len(defaultValue) > 0 { - dvalue = defaultValue[0] - } - - flag.Int64Var(value, p.prefix+name, dvalue, "") - p.keys = append(p.keys, name) - p.vals = append(p.vals, value) -} - -func (p *argsParser) DefineString(value *string, name string, defaultValue ...string) { - var dvalue string - if len(defaultValue) > 0 { - dvalue = defaultValue[0] - } - - flag.StringVar(value, p.prefix+name, dvalue, "") - p.keys = append(p.keys, name) - p.vals = append(p.vals, value) -} - -func (p *argsParser) Parse() { - flag.Parse() - - fmt.Printf("Parsed args:\n") - for i, key := range p.keys { - val := p.vals[i] - if v, ok := val.(*bool); ok && v != nil { - val = *v - } else if v, ok := val.(*int); ok && v != nil { - val = *v - } else if v, ok := val.(*int64); ok && v != nil { - val = *v - } else if v, ok := val.(*string); ok && v != nil { - val = *v - } - - fmt.Printf(" %s: %v\n", key, val) - } +func Args(prefix string) tester.ArgsParser { + return tester.Args(prefix) } diff --git a/pkg/core/deployer/internal/tester/args.go b/pkg/core/deployer/internal/tester/args.go index 9af1d559..0e64255b 100644 --- a/pkg/core/deployer/internal/tester/args.go +++ b/pkg/core/deployer/internal/tester/args.go @@ -1,85 +1,9 @@ package tester import ( - "flag" - "fmt" + "github.com/certimate-go/certimate/pkg/core/internal/tester" ) -type argsParser struct { - prefix string - - keys []string - vals []any -} - -func Args(prefix string) *argsParser { - return &argsParser{ - prefix: prefix, - keys: make([]string, 0), - vals: make([]any, 0), - } -} - -func (p *argsParser) DefineBool(value *bool, name string, defaultValue ...bool) { - var dvalue bool - if len(defaultValue) > 0 { - dvalue = defaultValue[0] - } - - flag.BoolVar(value, p.prefix+name, dvalue, "") - p.keys = append(p.keys, name) - p.vals = append(p.vals, value) -} - -func (p *argsParser) DefineInt(value *int, name string, defaultValue ...int) { - var dvalue int - if len(defaultValue) > 0 { - dvalue = defaultValue[0] - } - - flag.IntVar(value, p.prefix+name, dvalue, "") - p.keys = append(p.keys, name) - p.vals = append(p.vals, value) -} - -func (p *argsParser) DefineInt64(value *int64, name string, defaultValue ...int64) { - var dvalue int64 - if len(defaultValue) > 0 { - dvalue = defaultValue[0] - } - - flag.Int64Var(value, p.prefix+name, dvalue, "") - p.keys = append(p.keys, name) - p.vals = append(p.vals, value) -} - -func (p *argsParser) DefineString(value *string, name string, defaultValue ...string) { - var dvalue string - if len(defaultValue) > 0 { - dvalue = defaultValue[0] - } - - flag.StringVar(value, p.prefix+name, dvalue, "") - p.keys = append(p.keys, name) - p.vals = append(p.vals, value) -} - -func (p *argsParser) Parse() { - flag.Parse() - - fmt.Printf("Parsed args:\n") - for i, key := range p.keys { - val := p.vals[i] - if v, ok := val.(*bool); ok && v != nil { - val = *v - } else if v, ok := val.(*int); ok && v != nil { - val = *v - } else if v, ok := val.(*int64); ok && v != nil { - val = *v - } else if v, ok := val.(*string); ok && v != nil { - val = *v - } - - fmt.Printf(" %s: %v\n", key, val) - } +func Args(prefix string) tester.ArgsParser { + return tester.Args(prefix) } diff --git a/pkg/core/internal/tester/argsparser.go b/pkg/core/internal/tester/argsparser.go new file mode 100644 index 00000000..e984ac39 --- /dev/null +++ b/pkg/core/internal/tester/argsparser.go @@ -0,0 +1,93 @@ +package tester + +import ( + "flag" + "fmt" +) + +type ArgsParser interface { + DefineBool(value *bool, name string, defaultValue ...bool) + DefineInt(value *int, name string, defaultValue ...int) + DefineInt64(value *int64, name string, defaultValue ...int64) + DefineString(value *string, name string, defaultValue ...string) + Parse() +} + +type argsParser struct { + prefix string + + keys []string + vals []any +} + +func Args(prefix string) ArgsParser { + return &argsParser{ + prefix: prefix, + keys: make([]string, 0), + vals: make([]any, 0), + } +} + +func (p *argsParser) DefineBool(value *bool, name string, defaultValue ...bool) { + var dvalue bool + if len(defaultValue) > 0 { + dvalue = defaultValue[0] + } + + flag.BoolVar(value, p.prefix+name, dvalue, "") + p.keys = append(p.keys, name) + p.vals = append(p.vals, value) +} + +func (p *argsParser) DefineInt(value *int, name string, defaultValue ...int) { + var dvalue int + if len(defaultValue) > 0 { + dvalue = defaultValue[0] + } + + flag.IntVar(value, p.prefix+name, dvalue, "") + p.keys = append(p.keys, name) + p.vals = append(p.vals, value) +} + +func (p *argsParser) DefineInt64(value *int64, name string, defaultValue ...int64) { + var dvalue int64 + if len(defaultValue) > 0 { + dvalue = defaultValue[0] + } + + flag.Int64Var(value, p.prefix+name, dvalue, "") + p.keys = append(p.keys, name) + p.vals = append(p.vals, value) +} + +func (p *argsParser) DefineString(value *string, name string, defaultValue ...string) { + var dvalue string + if len(defaultValue) > 0 { + dvalue = defaultValue[0] + } + + flag.StringVar(value, p.prefix+name, dvalue, "") + p.keys = append(p.keys, name) + p.vals = append(p.vals, value) +} + +func (p *argsParser) Parse() { + flag.Parse() + + fmt.Printf("Parsed args:\n") + for i, key := range p.keys { + val := p.vals[i] + if v, ok := val.(*bool); ok && v != nil { + val = *v + } else if v, ok := val.(*int); ok && v != nil { + val = *v + } else if v, ok := val.(*int64); ok && v != nil { + val = *v + } else if v, ok := val.(*string); ok && v != nil { + val = *v + } + + fmt.Printf(" %s: %v\n", key, val) + } +} diff --git a/pkg/core/notifier/internal/tester/args.go b/pkg/core/notifier/internal/tester/args.go index 9af1d559..0e64255b 100644 --- a/pkg/core/notifier/internal/tester/args.go +++ b/pkg/core/notifier/internal/tester/args.go @@ -1,85 +1,9 @@ package tester import ( - "flag" - "fmt" + "github.com/certimate-go/certimate/pkg/core/internal/tester" ) -type argsParser struct { - prefix string - - keys []string - vals []any -} - -func Args(prefix string) *argsParser { - return &argsParser{ - prefix: prefix, - keys: make([]string, 0), - vals: make([]any, 0), - } -} - -func (p *argsParser) DefineBool(value *bool, name string, defaultValue ...bool) { - var dvalue bool - if len(defaultValue) > 0 { - dvalue = defaultValue[0] - } - - flag.BoolVar(value, p.prefix+name, dvalue, "") - p.keys = append(p.keys, name) - p.vals = append(p.vals, value) -} - -func (p *argsParser) DefineInt(value *int, name string, defaultValue ...int) { - var dvalue int - if len(defaultValue) > 0 { - dvalue = defaultValue[0] - } - - flag.IntVar(value, p.prefix+name, dvalue, "") - p.keys = append(p.keys, name) - p.vals = append(p.vals, value) -} - -func (p *argsParser) DefineInt64(value *int64, name string, defaultValue ...int64) { - var dvalue int64 - if len(defaultValue) > 0 { - dvalue = defaultValue[0] - } - - flag.Int64Var(value, p.prefix+name, dvalue, "") - p.keys = append(p.keys, name) - p.vals = append(p.vals, value) -} - -func (p *argsParser) DefineString(value *string, name string, defaultValue ...string) { - var dvalue string - if len(defaultValue) > 0 { - dvalue = defaultValue[0] - } - - flag.StringVar(value, p.prefix+name, dvalue, "") - p.keys = append(p.keys, name) - p.vals = append(p.vals, value) -} - -func (p *argsParser) Parse() { - flag.Parse() - - fmt.Printf("Parsed args:\n") - for i, key := range p.keys { - val := p.vals[i] - if v, ok := val.(*bool); ok && v != nil { - val = *v - } else if v, ok := val.(*int); ok && v != nil { - val = *v - } else if v, ok := val.(*int64); ok && v != nil { - val = *v - } else if v, ok := val.(*string); ok && v != nil { - val = *v - } - - fmt.Printf(" %s: %v\n", key, val) - } +func Args(prefix string) tester.ArgsParser { + return tester.Args(prefix) }