All checks were successful
Go Action / goaction (pull_request) Successful in 4m52s
232 lines
4.0 KiB
Go
232 lines
4.0 KiB
Go
package generate
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"fmt"
|
|
"log"
|
|
|
|
"gitoa.ru/go-4devs/config"
|
|
)
|
|
|
|
func NewConfigure(ctx context.Context, prov config.Provider) ConfigureConfig {
|
|
return ConfigureConfig{
|
|
Provider: prov,
|
|
ctx: ctx,
|
|
handle: func(err error) {
|
|
if !errors.Is(err, config.ErrNotFound) {
|
|
log.Print(err)
|
|
}
|
|
},
|
|
}
|
|
}
|
|
|
|
type ConfigureConfig struct {
|
|
config.Provider
|
|
|
|
ctx context.Context //nolint:containedctx
|
|
handle func(err error)
|
|
}
|
|
|
|
func (i ConfigureConfig) ReadBuildTags() (string, error) {
|
|
val, verr := i.Value(i.ctx, optionBuildTags)
|
|
if verr != nil {
|
|
return "", fmt.Errorf("get %v:%w", optionBuildTags, verr)
|
|
}
|
|
|
|
data, err := val.ParseString()
|
|
if err != nil {
|
|
return "", fmt.Errorf("parse %v:%w", optionBuildTags, err)
|
|
}
|
|
|
|
return data, nil
|
|
}
|
|
|
|
func (i ConfigureConfig) BuildTags() string {
|
|
data, err := i.ReadBuildTags()
|
|
if err != nil {
|
|
i.handle(err)
|
|
|
|
return ""
|
|
}
|
|
|
|
return data
|
|
}
|
|
|
|
func (i ConfigureConfig) ReadOutName() (string, error) {
|
|
val, err := i.Value(i.ctx, optionOutName)
|
|
if err != nil {
|
|
return "", fmt.Errorf("get %v:%w", optionOutName, err)
|
|
}
|
|
|
|
data, derr := val.ParseString()
|
|
if derr != nil {
|
|
return "", fmt.Errorf("parse %v:%w", optionOutName, derr)
|
|
}
|
|
|
|
return data, nil
|
|
}
|
|
|
|
func (i ConfigureConfig) OutName() string {
|
|
data, err := i.ReadOutName()
|
|
if err != nil {
|
|
i.handle(err)
|
|
|
|
return ""
|
|
}
|
|
|
|
return data
|
|
}
|
|
|
|
func (i ConfigureConfig) ReadFile() (string, error) {
|
|
val, err := i.Value(i.ctx, OptionFile)
|
|
if err != nil {
|
|
return "", fmt.Errorf("get %v:%w", OptionFile, err)
|
|
}
|
|
|
|
data, derr := val.ParseString()
|
|
if derr != nil {
|
|
return "", fmt.Errorf("parse %v:%w", OptionFile, derr)
|
|
}
|
|
|
|
return data, nil
|
|
}
|
|
|
|
func (i ConfigureConfig) File() string {
|
|
data, err := i.ReadFile()
|
|
if err != nil {
|
|
i.handle(err)
|
|
|
|
return ""
|
|
}
|
|
|
|
return data
|
|
}
|
|
|
|
func (i ConfigureConfig) ReadMethods() ([]string, error) {
|
|
val, err := i.Value(i.ctx, optionMethod)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("get %v:%w", optionMethod, err)
|
|
}
|
|
|
|
var data []string
|
|
|
|
perr := val.Unmarshal(&data)
|
|
if perr != nil {
|
|
return nil, fmt.Errorf("unmarshal %v:%w", optionMethod, perr)
|
|
}
|
|
|
|
return data, nil
|
|
}
|
|
|
|
func (i ConfigureConfig) Methods() []string {
|
|
data, err := i.ReadMethods()
|
|
if err != nil {
|
|
i.handle(err)
|
|
|
|
return nil
|
|
}
|
|
|
|
return data
|
|
}
|
|
|
|
func (i ConfigureConfig) ReadSkipContext() (bool, error) {
|
|
val, err := i.Value(i.ctx, optionSkipContext)
|
|
if err != nil {
|
|
return false, fmt.Errorf("get %v:%w", optionSkipContext, err)
|
|
}
|
|
|
|
data, derr := val.ParseBool()
|
|
if derr != nil {
|
|
return false, fmt.Errorf("parse %v:%w", optionSkipContext, derr)
|
|
}
|
|
|
|
return data, nil
|
|
}
|
|
|
|
func (i ConfigureConfig) SkipContext() bool {
|
|
data, err := i.ReadSkipContext()
|
|
if err != nil {
|
|
i.handle(err)
|
|
|
|
return false
|
|
}
|
|
|
|
return data
|
|
}
|
|
|
|
func (i ConfigureConfig) ReadPrefix() (string, error) {
|
|
val, err := i.Value(i.ctx, optionPrefix)
|
|
if err != nil {
|
|
return "", fmt.Errorf("get %v: %w", optionPrefix, err)
|
|
}
|
|
|
|
data, derr := val.ParseString()
|
|
if derr != nil {
|
|
return "", fmt.Errorf("parse %v:%w", optionPrefix, derr)
|
|
}
|
|
|
|
return data, nil
|
|
}
|
|
|
|
func (i ConfigureConfig) Prefix() string {
|
|
val, err := i.ReadPrefix()
|
|
if err != nil {
|
|
i.handle(err)
|
|
|
|
return ""
|
|
}
|
|
|
|
return val
|
|
}
|
|
|
|
func (i ConfigureConfig) ReadSuffix() (string, error) {
|
|
val, err := i.Value(i.ctx, optionSuffix)
|
|
if err != nil {
|
|
return "", fmt.Errorf("get %v:%w", optionSuffix, err)
|
|
}
|
|
|
|
data, derr := val.ParseString()
|
|
if derr != nil {
|
|
return "", fmt.Errorf("parse %v:%w", optionSuffix, derr)
|
|
}
|
|
|
|
return data, nil
|
|
}
|
|
|
|
func (i ConfigureConfig) Suffix() string {
|
|
data, err := i.ReadSuffix()
|
|
if err != nil {
|
|
i.handle(err)
|
|
|
|
return ""
|
|
}
|
|
|
|
return data
|
|
}
|
|
|
|
func (i ConfigureConfig) ReadFullPkg() (string, error) {
|
|
val, err := i.Value(i.ctx, optionFullPkg)
|
|
if err != nil {
|
|
return "", fmt.Errorf("get %v:%w", optionFullPkg, err)
|
|
}
|
|
|
|
data, derr := val.ParseString()
|
|
if derr != nil {
|
|
return "", fmt.Errorf("parse %v:%w", optionFullPkg, derr)
|
|
}
|
|
|
|
return data, nil
|
|
}
|
|
|
|
func (i ConfigureConfig) FullPkg() string {
|
|
data, err := i.ReadFullPkg()
|
|
if err != nil {
|
|
i.handle(err)
|
|
|
|
return ""
|
|
}
|
|
|
|
return data
|
|
}
|