in pkg/cmd/describe_kamelet.go [98:181]
func (command *describeKameletCommandOptions) describeKamelet(cmd *cobra.Command, kamelet v1.Kamelet) (string, error) {
return indentedwriter.IndentedString(func(out io.Writer) error {
w := indentedwriter.NewWriter(cmd.OutOrStdout())
describeObjectMeta(w, kamelet.ObjectMeta)
// Definition
def := kamelet.Spec.Definition
if def != nil {
w.Writef(0, "Definition:\n")
w.Writef(1, "Title:\t%s\n", def.Title)
w.Writef(1, "Description:\n")
for _, s := range strings.Split(def.Description, "\n") {
w.Writef(2, "%s\n", s)
}
if len(def.Required) > 0 {
w.Writef(1, "Required:\n")
for _, req := range def.Required {
w.Writef(2, "%s\n", req)
}
}
if len(def.Properties) > 0 {
w.Writef(1, "Properties:\n")
for _, k := range kamelet.SortedDefinitionPropertiesKeys() {
p := def.Properties[k]
w.Writef(2, "%s:\n", k)
w.Writef(3, "Title:\t%s\n", p.Title)
w.Writef(3, "Description:\t%s\n", p.Description)
w.Writef(3, "Type:\t%s\n", p.Type)
if p.Default != nil {
w.Writef(3, "Default:\t%s\n", p.Default)
}
}
}
}
// Types
if len(kamelet.Spec.DataTypes) > 0 {
w.Writef(0, "Types:\n")
for _, k := range kamelet.SortedTypesKeys() {
t := kamelet.Spec.DataTypes[k]
w.Writef(1, "%s:\n", k)
w.Writef(2, "Default:\t%s\n", t.Default)
w.Writef(2, "Types:\t\n")
w.Writef(3, "Format\tScheme\tMediaType\tDescription\n")
for _, dt := range t.Types {
w.Writef(3, "%s\t%s\t%s\t%s", dt.Format, dt.Scheme, dt.MediaType, dt.Description)
}
}
}
// Template
// TODO pretty print template data
template := kamelet.Spec.Template
if template != nil {
w.Writef(0, "Template:\n")
w.Writef(1, "%s\n", string(template.RawMessage))
}
// Dependencies
if len(kamelet.Spec.Dependencies) > 0 {
w.Writef(0, "Dependencies:\t\n")
for _, d := range kamelet.Spec.Dependencies {
w.Writef(1, "%s\n", d)
}
}
// Sources
if len(kamelet.Spec.Sources) > 0 {
w.Writef(0, "Sources:\t\n")
//nolint:dupword
w.Writef(1, "Name\tLanguage\tCompression\tRef\tRef Key\n")
for _, s := range kamelet.Spec.Sources {
w.Writef(1, "%s\t%s\t%t\t%s\t%s\n",
s.Name,
s.InferLanguage(),
s.Compression,
s.ContentRef,
s.ContentKey)
}
}
return nil
})
}