code: func PrintDryRunFiles(files []FileToPrint, w io.Writer) error {
  	errs := []error{}
  	for _, file := range files {
  		if len(file.RealPath) == 0 {
  			continue
  		}
  
  		fileBytes, err := ioutil.ReadFile(file.RealPath)
  		if err != nil {
  			errs = append(errs, err)
  			continue
  		}
  
  		// Make it possible to fake the path of the file; i.e. you may want to tell the user
  		// "Here is what would be written to /etc/kubernetes/admin.conf", although you wrote it to /tmp/kubeadm-dryrun/admin.conf and are loading it from there
  		// Fall back to the "real" path if PrintPath is not set
  		outputFilePath := file.PrintPath
  		if len(outputFilePath) == 0 {
  			outputFilePath = file.RealPath
  		}
  
  		fmt.Fprintf(w, "[dryrun] Would write file %q with content:\n", outputFilePath)
  		apiclient.PrintBytesWithLinePrefix(w, fileBytes, "\t")
  	}
  	return errorsutil.NewAggregate(errs)
  }
docs: // PrintDryRunFiles prints the contents of the FileToPrints given to it to the writer w