@@ -27,43 +27,36 @@ func main() {
27
27
plugin , err := plugins .MakeBuiltinPlugin (resid .GvkFromNode (config ))
28
28
if err != nil {
29
29
// Check if config asks us to inject it
30
- if _ , ok := config .GetAnnotations ()[utils .FunctionAnnotationInjectLocal ]; ok {
31
- injected := config .Copy ()
32
-
33
- err := utils .TransferAnnotations ([]* yaml.RNode {injected }, config )
34
- if err != nil {
35
- return errors .WrapPrefixf (
36
- err , "Error while mangling annotations on %s fails configuration" , res .OrgId ())
37
- }
38
- rl .Items = append (rl .Items , injected )
39
- return nil
40
- } else {
30
+ if _ , ok := config .GetAnnotations ()[utils .FunctionAnnotationInjectLocal ]; ! ok {
41
31
return errors .WrapPrefixf (err , "creating plugin" )
42
32
}
43
33
}
44
34
45
- yamlNode := config . YNode ()
46
- yamlBytes , err := yaml . Marshal ( yamlNode )
35
+ ok := false
36
+ var transformer resmap. Transformer
47
37
48
- if err != nil {
49
- return errors .WrapPrefixf (err , "marshalling yaml from res %s" , res .OrgId ())
50
- }
51
- helpers , err := plugins .NewPluginHelpers ()
52
- if err != nil {
53
- return errors .WrapPrefixf (err , "Cannot build Plugin helpers" )
54
- }
55
- err = plugin .Config (helpers , yamlBytes )
56
- if err != nil {
57
- return errors .WrapPrefixf (
58
- err , "plugin %s fails configuration" , res .OrgId ())
59
- }
38
+ if plugin != nil {
39
+ yamlNode := config .YNode ()
40
+ yamlBytes , err := yaml .Marshal (yamlNode )
60
41
61
- transformer , ok := plugin .(resmap.Transformer )
62
- if ok {
63
- rm , err := helpers .ResmapFactory ().NewResMapFromRNodeSlice (rl .Items )
64
42
if err != nil {
65
- return errors .WrapPrefixf (err , "getting resource maps" )
43
+ return errors .WrapPrefixf (err , "marshalling yaml from res %s" , res .OrgId ())
44
+ }
45
+ helpers , err := plugins .NewPluginHelpers ()
46
+ if err != nil {
47
+ return errors .WrapPrefixf (err , "Cannot build Plugin helpers" )
66
48
}
49
+ err = plugin .Config (helpers , yamlBytes )
50
+ if err != nil {
51
+ return errors .WrapPrefixf (
52
+ err , "plugin %s fails configuration" , res .OrgId ())
53
+ }
54
+
55
+ transformer , ok = plugin .(resmap.Transformer )
56
+ }
57
+
58
+ if ok {
59
+ rm := utils .ResourceMapFromNodes (rl .Items )
67
60
err = transformer .Transform (rm )
68
61
if err != nil {
69
62
return errors .WrapPrefixf (err , "Transforming resources" )
@@ -85,18 +78,24 @@ func main() {
85
78
}
86
79
87
80
} else {
88
- generator , ok := plugin .(resmap.Generator )
81
+ var rrl []* yaml.RNode
82
+ if plugin == nil { // No plugin, it's an heredoc document
83
+ rrl = []* yaml.RNode {config .Copy ()}
84
+ } else {
85
+ generator , ok := plugin .(resmap.Generator )
89
86
90
- if ! ok {
91
- return fmt .Errorf ("plugin %s is neither a generator nor a transformer" , res .OrgId ())
92
- }
87
+ if ! ok {
88
+ return fmt .Errorf ("plugin %s is neither a generator nor a transformer" , res .OrgId ())
89
+ }
93
90
94
- rm , err := generator .Generate ()
95
- if err != nil {
96
- return errors .WrapPrefixf (err , "generating resource(s)" )
91
+ rm , err := generator .Generate ()
92
+ if err != nil {
93
+ return errors .WrapPrefixf (err , "generating resource(s)" )
94
+ }
95
+
96
+ rrl = rm .ToRNodeSlice ()
97
97
}
98
98
99
- rrl := rm .ToRNodeSlice ()
100
99
if err := utils .TransferAnnotations (rrl , config ); err != nil {
101
100
return errors .WrapPrefixf (err , "While transferring annotations" )
102
101
}
0 commit comments