code: func (b *Bundler) provisionVendorZip(pathDownload, pathCache, pathVendor string) (err error) {
  	// Download source
  	if _, errStat := os.Stat(pathCache); os.IsNotExist(errStat) {
  		if err = astilectron.Download(b.ctx, b.Client, pathDownload, pathCache); err != nil {
  			err = errors.Wrapf(err, "downloading %s into %s failed", pathDownload, pathCache)
  			return
  		}
  	} else {
  		astilog.Debugf("%s already exists, skipping download of %s", pathCache, pathDownload)
  	}
  
  	// Check context error
  	if b.ctx.Err() != nil {
  		return b.ctx.Err()
  	}
  
  	// Copy
  	astilog.Debugf("Copying %s to %s", pathCache, pathVendor)
  	if err = astios.Copy(b.ctx, pathCache, pathVendor); err != nil {
  		err = errors.Wrapf(err, "copying %s to %s failed", pathCache, pathVendor)
  		return
  	}
  
  	// Check context error
  	if b.ctx.Err() != nil {
  		return b.ctx.Err()
  	}
  	return
  }
docs: // provisionVendorZip provisions a vendor zip file