cmd/utils.go
changeset 110 57843255fd1a
parent 91 02312ccc1fd3
child 111 863b61d682e1
--- a/cmd/utils.go	Tue May 09 20:14:28 2017 +0200
+++ b/cmd/utils.go	Tue May 09 20:14:28 2017 +0200
@@ -47,8 +47,19 @@
 	return of
 }
 
+type mcPrinter struct {
+	printer.ResourcePrinter
+	command string
+}
+
+type mcResourcePrinter interface {
+	printer.ResourcePrinter
+	printObj(interface{}) error
+	setCommand(string)
+}
+
 // getPrinter returns a resource printer for the requested output format.
-func getPrinter() (printer.ResourcePrinter, error) {
+func getPrinter() (mcResourcePrinter, error) {
 	opt := make(printer.Options)
 	of := getOutputFormat()
 
@@ -75,7 +86,13 @@
 			opt["template"] = string(tmpl)
 		}
 	}
-	return printer.NewPrinter(of, opt)
+	var mcrp mcPrinter
+	p, err := printer.NewPrinter(of, opt)
+	if err != nil {
+		return mcrp, err
+	}
+	mcrp.ResourcePrinter = p
+	return mcrp, nil
 }
 
 func readTemplate(name, templateDir string) ([]byte, error) {
@@ -123,3 +140,11 @@
 func errPrint(format string, a ...interface{}) (n int, err error) {
 	return fmt.Fprintf(os.Stderr, format+"\n", a...)
 }
+
+func (mcp mcPrinter) printObj(obj interface{}) error {
+	return mcp.PrintObj(obj, nil, "")
+}
+
+func (mcp mcPrinter) setCommand(cmd string) {
+	mcp.command = cmd
+}