func generateDistribution()

in cmd/distrogen/main.go [96:142]


func generateDistribution() error {
	specPath := *flagSpec
	if *flagSpec == "" {
		return errNoSpecFlag
	}

	spec, err := NewDistributionSpec(specPath)
	if err != nil {
		return err
	}

	registry, err := LoadEmbeddedRegistry()
	if err != nil {
		return err
	}

	for _, registryPath := range *flagRegistry {
		additionalRegistry, err := LoadRegistry(registryPath)
		if err != nil {
			return err
		}
		registry.Merge(additionalRegistry)
	}

	generator, err := NewDistributionGenerator(spec, registry, *flagForce)
	if err != nil {
		return err
	}
	defer generator.Clean()

	if *flagCustomTemplates != "" {
		generator.CustomTemplatesDir = os.DirFS(*flagCustomTemplates)
	}

	if err := generator.Generate(); err != nil {
		return err
	}

	var resultErr error
	if *flagCompare {
		resultErr = generator.Compare()
	} else {
		resultErr = generator.MoveGeneratedDirToWd()
	}

	return resultErr
}