func()

in tools/go-agent/instrument/plugins/instrument.go [205:243]


func (i *Instrument) WriteExtraFiles(basePath string) ([]string, error) {
	// if no enhancements or already wrote extra files, then ignore
	if (len(i.enhancements) == 0 && !i.forceEnhance) || i.extraFilesWrote {
		return nil, nil
	}
	i.extraFilesWrote = true

	packageName := filepath.Base(i.compileOpts.Package)
	for _, e := range i.enhancements {
		if e.PackageName() != "" {
			packageName = e.PackageName()
			break
		}
	}
	context := rewrite.NewContext(i.compileOpts.Package, packageName)

	var results = make([]string, 0)
	var files []string
	var err error

	// copy basic support files(operators)
	if files, err = i.copyOperatorsFS(context, basePath, packageName); err != nil {
		return nil, err
	}
	results = append(results, files...)

	// copy user defined files(interceptors)
	if files, err = i.copyFrameworkFS(context, i.compileOpts.Package, basePath, packageName); err != nil {
		return nil, err
	}
	results = append(results, files...)

	// write delegator file
	if files, err = i.writeDelegatorFile(context, basePath); err != nil {
		return nil, err
	}
	results = append(results, files...)
	return results, nil
}