printer/templateprinter.go
changeset 90 b1da6dc9f689
parent 89 3758bb5f0979
child 93 1cef5da83488
equal deleted inserted replaced
89:3758bb5f0979 90:b1da6dc9f689
    74 	switch ot := obj.(type) { // I wish I knew a better way...
    74 	switch ot := obj.(type) { // I wish I knew a better way...
    75 	case []madon.Account, []madon.Application, []madon.Attachment, []madon.Card,
    75 	case []madon.Account, []madon.Application, []madon.Attachment, []madon.Card,
    76 		[]madon.Client, []madon.Context, []madon.Instance, []madon.Mention,
    76 		[]madon.Client, []madon.Context, []madon.Instance, []madon.Mention,
    77 		[]madon.Notification, []madon.Relationship, []madon.Report,
    77 		[]madon.Notification, []madon.Relationship, []madon.Report,
    78 		[]madon.Results, []madon.Status, []madon.StreamEvent, []madon.Tag,
    78 		[]madon.Results, []madon.Status, []madon.StreamEvent, []madon.Tag,
    79 		[]*gomif.InstanceStatus:
    79 		[]*gomif.InstanceStatus, []string:
    80 		return p.templateForeach(ot, w)
    80 		return p.templateForeach(ot, w)
    81 	}
    81 	}
    82 
    82 
    83 	return p.templatePrintSingleObj(obj, w)
    83 	return p.templatePrintSingleObj(obj, w)
    84 }
    84 }
    85 
    85 
    86 func (p *TemplatePrinter) templatePrintSingleObj(obj interface{}, w io.Writer) error {
    86 func (p *TemplatePrinter) templatePrintSingleObj(obj interface{}, w io.Writer) error {
       
    87 	if s, ok := obj.(string); ok {
       
    88 		// obj is a simple string
       
    89 		if err := p.safeExecute(w, s); err != nil {
       
    90 			return fmt.Errorf("error executing template %q: %v", p.rawTemplate, err)
       
    91 		}
       
    92 		return nil
       
    93 	}
       
    94 
    87 	// This code comes from Kubernetes.
    95 	// This code comes from Kubernetes.
    88 	data, err := json.Marshal(obj)
    96 	data, err := json.Marshal(obj)
    89 	if err != nil {
    97 	if err != nil {
    90 		return err
    98 		return err
    91 	}
    99 	}