/
register.go
65 lines (54 loc) · 1.62 KB
/
register.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
65
package markers
import (
"sigs.k8s.io/controller-tools/pkg/markers"
)
type definitionWithHelp struct {
*markers.Definition
Help *markers.DefinitionHelp
}
func (d *definitionWithHelp) WithHelp(help *markers.DefinitionHelp) *definitionWithHelp {
d.Help = help
return d
}
func (d *definitionWithHelp) Register(reg *markers.Registry) error {
if err := reg.Register(d.Definition); err != nil {
return err
}
if d.Help != nil {
reg.AddHelp(d.Definition, d.Help)
}
return nil
}
func must(def *markers.Definition, err error) *definitionWithHelp {
return &definitionWithHelp{
Definition: markers.Must(def, err),
}
}
// AllDefinitions contains all marker definitions for this package.
var AllDefinitions []*definitionWithHelp
// type hasHelp interface {
// Help() *markers.DefinitionHelp
// }
// mustMakeAllWithPrefix converts each object into a marker definition using
// the object's type's with the prefix to form the marker name.
// func mustMakeAllWithPrefix(prefix string, target markers.TargetType, objs ...interface{}) []*definitionWithHelp {
// defs := make([]*definitionWithHelp, len(objs))
// for i, obj := range objs {
// name := prefix + ":" + reflect.TypeOf(obj).Name()
// def, err := markers.MakeDefinition(name, target, obj)
// if err != nil {
// panic(err)
// }
// defs[i] = &definitionWithHelp{Definition: def, Help: obj.(hasHelp).Help()}
// }
// return defs
// }
// Register registers all definitions for CRD generation to the given registry.
func Register(reg *markers.Registry) error {
for _, def := range AllDefinitions {
if err := def.Register(reg); err != nil {
return err
}
}
return nil
}