MCPcopy
hub / github.com/1Panel-dev/KubePi / ApplyFlags

Function ApplyFlags

thirdparty/gotty/utils/flags.go:59–96  ·  view source on GitHub ↗
(
	flags []cli.Flag,
	mappingHint map[string]string,
	c *cli.Context,
	options ...interface{},
)

Source from the content-addressed store, hash-verified

57}
58
59func ApplyFlags(
60 flags []cli.Flag,
61 mappingHint map[string]string,
62 c *cli.Context,
63 options ...interface{},
64) {
65 objects := make([]*structs.Struct, len(options))
66 for i, struct_ := range options {
67 objects[i] = structs.New(struct_)
68 }
69
70 for flagName, fieldName := range mappingHint {
71 if !c.IsSet(flagName) {
72 continue
73 }
74 var field *structs.Field
75 var ok bool
76 for _, o := range objects {
77 field, ok = o.FieldOk(fieldName)
78 if ok {
79 break
80 }
81 }
82 if field == nil {
83 continue
84 }
85 var val interface{}
86 switch field.Kind() {
87 case reflect.String:
88 val = c.String(flagName)
89 case reflect.Bool:
90 val = c.Bool(flagName)
91 case reflect.Int:
92 val = c.Int(flagName)
93 }
94 field.Set(val)
95 }
96}

Callers

nothing calls this directly

Calls 2

NewMethod · 0.65
SetMethod · 0.45

Tested by

no test coverage detected