github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/cmd/imagetool/mergeFilters.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/Cloud-Foundations/Dominator/lib/filter"
     7  	"github.com/Cloud-Foundations/Dominator/lib/log"
     8  )
     9  
    10  func mergeFiltersSubcommand(args []string, logger log.DebugLogger) error {
    11  	if err := mergeFilters(args); err != nil {
    12  		return fmt.Errorf("Error merging filter: %s", err)
    13  	}
    14  	return nil
    15  }
    16  
    17  func mergeFilters(filterFiles []string) error {
    18  	mergeableFilter := &filter.MergeableFilter{}
    19  	for _, filterFile := range filterFiles {
    20  		filt, err := filter.Load(filterFile)
    21  		if err != nil {
    22  			return err
    23  		}
    24  		mergeableFilter.Merge(filt)
    25  	}
    26  	filt := mergeableFilter.ExportFilter()
    27  	for _, filterLine := range filt.FilterLines {
    28  		if _, err := fmt.Println(filterLine); err != nil {
    29  			return err
    30  		}
    31  	}
    32  	return nil
    33  }