func build()

in dev/import-beats/main.go [113:142]


func build(options importerOptions) error {
	iconRepository, err := newIconRepository(options.euiDir, options.kibanaDir)
	if err != nil {
		return errors.Wrap(err, "creating icon repository failed")
	}
	kibanaMigrator := newKibanaMigrator(options.kibanaHostPort,
		options.kibanaUsername,
		options.kibanaPassword,
		options.skipKibana)
	ecsFields, err := loadEcsFields(options.ecsDir)
	if err != nil {
		return errors.Wrap(err, "loading ECS fields failed")
	}

	repository := newPackageRepository(iconRepository, kibanaMigrator, ecsFields, options.selectedPackages())

	for _, beatName := range logSources {
		err := repository.createPackagesFromSource(options.beatsDir, beatName, "logs")
		if err != nil {
			return errors.Wrap(err, "creating from logs source failed")
		}
	}
	for _, beatName := range metricSources {
		err := repository.createPackagesFromSource(options.beatsDir, beatName, "metrics")
		if err != nil {
			return errors.Wrap(err, "creating from metrics source failed")
		}
	}
	return repository.save(options.outputDir)
}