github.com/opendevstack/tailor@v1.3.5-0.20220119161809-cab064e60a67/pkg/commands/export.go (about)

     1  package commands
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/opendevstack/tailor/pkg/cli"
     7  	"github.com/opendevstack/tailor/pkg/openshift"
     8  )
     9  
    10  // Export prints an export of targeted resources to STDOUT.
    11  func Export(exportOptions *cli.ExportOptions) error {
    12  	filter, err := openshift.NewResourceFilter(exportOptions.Resource, exportOptions.Selector, exportOptions.Excludes)
    13  	if err != nil {
    14  		return err
    15  	}
    16  
    17  	c := cli.NewOcClient(exportOptions.Namespace)
    18  	out, err := openshift.ExportAsTemplateFile(
    19  		filter,
    20  		exportOptions.WithAnnotations,
    21  		exportOptions.Namespace,
    22  		exportOptions.WithHardcodedNamespace,
    23  		exportOptions.TrimAnnotations,
    24  		c,
    25  	)
    26  	if err != nil {
    27  		return fmt.Errorf(
    28  			"Could not export %s resources as template: %s",
    29  			filter.String(),
    30  			err,
    31  		)
    32  	}
    33  
    34  	fmt.Println(out)
    35  	return nil
    36  }