func (o ViewOptions) Run(out io.Writer, printer kubectl.ResourcePrinter) error { config, err := o.loadConfig() if err != nil { return err } if o.Minify { if err := clientcmdapi.MinifyConfig(config); err != nil { return err } } if o.Flatten { if err := clientcmdapi.FlattenConfig(config); err != nil { return err } } else if !o.RawByteData { clientcmdapi.ShortenConfig(config) } err = printer.PrintObj(config, out) if err != nil { return err } return nil }
// minifyConfig is a wrapper around `clientcmdapi.MinifyConfig()` that // sets the current context to the given context before calling // `clientcmdapi.MinifyConfig()`. func minifyConfig(clientConfig *clientcmdapi.Config, context string) (*clientcmdapi.Config, error) { // MinifyConfig inline-modifies the passed clientConfig. So we make a // copy of it before passing the config to it. A shallow copy is // sufficient because the underlying fields will be reconstructed by // MinifyConfig anyway. newClientConfig := *clientConfig newClientConfig.CurrentContext = context err := clientcmdapi.MinifyConfig(&newClientConfig) if err != nil { return nil, err } return &newClientConfig, nil }