github.com/wolfi-dev/wolfictl@v0.16.11/pkg/configs/build/section_updaters.go (about)

     1  package build
     2  
     3  import (
     4  	"chainguard.dev/apko/pkg/build/types"
     5  	"chainguard.dev/melange/pkg/config"
     6  	"github.com/wolfi-dev/wolfictl/pkg/configs"
     7  )
     8  
     9  func NewPackageSectionUpdater(
    10  	updater configs.SectionUpdater[config.Package, config.Configuration],
    11  ) configs.EntryUpdater[config.Configuration] {
    12  	yamlASTMutater := configs.NewTargetedYAMLASTMutater[config.Package, config.Configuration](
    13  		"package",
    14  		updater,
    15  		func(cfg config.Configuration, data config.Package) config.Configuration {
    16  			cfg.Package = data
    17  			return cfg
    18  		},
    19  	)
    20  
    21  	return configs.NewYAMLUpdateFunc[config.Configuration](yamlASTMutater)
    22  }
    23  
    24  func NewEnvironmentSectionUpdater(
    25  	updater configs.SectionUpdater[types.ImageConfiguration, config.Configuration],
    26  ) configs.EntryUpdater[config.Configuration] {
    27  	yamlASTMutater := configs.NewTargetedYAMLASTMutater[types.ImageConfiguration, config.Configuration](
    28  		"environment",
    29  		updater,
    30  		func(cfg config.Configuration, data types.ImageConfiguration) config.Configuration {
    31  			cfg.Environment = data
    32  			return cfg
    33  		},
    34  	)
    35  
    36  	return configs.NewYAMLUpdateFunc[config.Configuration](yamlASTMutater)
    37  }
    38  
    39  func NewPipelineSectionUpdater(
    40  	updater configs.SectionUpdater[[]config.Pipeline, config.Configuration],
    41  ) configs.EntryUpdater[config.Configuration] {
    42  	yamlASTMutater := configs.NewTargetedYAMLASTMutater[[]config.Pipeline, config.Configuration](
    43  		"pipeline",
    44  		updater,
    45  		func(cfg config.Configuration, data []config.Pipeline) config.Configuration {
    46  			cfg.Pipeline = data
    47  			return cfg
    48  		},
    49  	)
    50  
    51  	return configs.NewYAMLUpdateFunc[config.Configuration](yamlASTMutater)
    52  }
    53  
    54  func NewSubpackagesSectionUpdater(
    55  	updater configs.SectionUpdater[[]config.Subpackage, config.Configuration],
    56  ) configs.EntryUpdater[config.Configuration] {
    57  	yamlASTMutater := configs.NewTargetedYAMLASTMutater[[]config.Subpackage, config.Configuration](
    58  		"subpackages",
    59  		updater,
    60  		func(cfg config.Configuration, data []config.Subpackage) config.Configuration {
    61  			cfg.Subpackages = data
    62  			return cfg
    63  		},
    64  	)
    65  
    66  	return configs.NewYAMLUpdateFunc[config.Configuration](yamlASTMutater)
    67  }