code: func (i *Image) openDestinationsForWriting() (io.WriteCloser, error) {
  	targetFilenames := i.targetFilenames()
  	var changedFilenames []string
  
  	// Fast path:
  	// This is a processed version of the original;
  	// check if it already existis at the destination.
  	for _, targetFilename := range targetFilenames {
  		if _, err := i.spec.BaseFs.PublishFs.Stat(targetFilename); err == nil {
  			continue
  		}
  		changedFilenames = append(changedFilenames, targetFilename)
  	}
  
  	if len(changedFilenames) == 0 {
  		return nil, nil
  	}
  
  	return helpers.OpenFilesForWriting(i.spec.BaseFs.PublishFs, changedFilenames...)
  
  }
docs: // returns an opened file or nil if nothing to write.