cmd/utils.go
changeset 110 57843255fd1a
parent 91 02312ccc1fd3
child 111 863b61d682e1
equal deleted inserted replaced
109:912e72511084 110:57843255fd1a
    45 		}
    45 		}
    46 	}
    46 	}
    47 	return of
    47 	return of
    48 }
    48 }
    49 
    49 
       
    50 type mcPrinter struct {
       
    51 	printer.ResourcePrinter
       
    52 	command string
       
    53 }
       
    54 
       
    55 type mcResourcePrinter interface {
       
    56 	printer.ResourcePrinter
       
    57 	printObj(interface{}) error
       
    58 	setCommand(string)
       
    59 }
       
    60 
    50 // getPrinter returns a resource printer for the requested output format.
    61 // getPrinter returns a resource printer for the requested output format.
    51 func getPrinter() (printer.ResourcePrinter, error) {
    62 func getPrinter() (mcResourcePrinter, error) {
    52 	opt := make(printer.Options)
    63 	opt := make(printer.Options)
    53 	of := getOutputFormat()
    64 	of := getOutputFormat()
    54 
    65 
    55 	// Initialize color mode
    66 	// Initialize color mode
    56 	switch viper.GetString("color") {
    67 	switch viper.GetString("color") {
    73 				return nil, err
    84 				return nil, err
    74 			}
    85 			}
    75 			opt["template"] = string(tmpl)
    86 			opt["template"] = string(tmpl)
    76 		}
    87 		}
    77 	}
    88 	}
    78 	return printer.NewPrinter(of, opt)
    89 	var mcrp mcPrinter
       
    90 	p, err := printer.NewPrinter(of, opt)
       
    91 	if err != nil {
       
    92 		return mcrp, err
       
    93 	}
       
    94 	mcrp.ResourcePrinter = p
       
    95 	return mcrp, nil
    79 }
    96 }
    80 
    97 
    81 func readTemplate(name, templateDir string) ([]byte, error) {
    98 func readTemplate(name, templateDir string) ([]byte, error) {
    82 	if strings.HasPrefix(name, "/") || strings.HasPrefix(name, "./") || strings.HasPrefix(name, "../") {
    99 	if strings.HasPrefix(name, "/") || strings.HasPrefix(name, "./") || strings.HasPrefix(name, "../") {
    83 		return ioutil.ReadFile(name)
   100 		return ioutil.ReadFile(name)
   121 }
   138 }
   122 
   139 
   123 func errPrint(format string, a ...interface{}) (n int, err error) {
   140 func errPrint(format string, a ...interface{}) (n int, err error) {
   124 	return fmt.Fprintf(os.Stderr, format+"\n", a...)
   141 	return fmt.Fprintf(os.Stderr, format+"\n", a...)
   125 }
   142 }
       
   143 
       
   144 func (mcp mcPrinter) printObj(obj interface{}) error {
       
   145 	return mcp.PrintObj(obj, nil, "")
       
   146 }
       
   147 
       
   148 func (mcp mcPrinter) setCommand(cmd string) {
       
   149 	mcp.command = cmd
       
   150 }