github.com/nextlinux/gosbom@v0.81.1-0.20230627115839-1ff50c281391/cmd/gosbom/cli/options/rekor.go (about)

     1  package options
     2  
     3  import (
     4  	"github.com/spf13/cobra"
     5  	"github.com/spf13/pflag"
     6  	"github.com/spf13/viper"
     7  )
     8  
     9  const DefaultRekorURL = "https://rekor.sigstore.dev"
    10  
    11  // RekorOptions is the wrapper for Rekor related options.
    12  type RekorOptions struct {
    13  	URL string
    14  }
    15  
    16  var _ Interface = (*RekorOptions)(nil)
    17  
    18  // AddFlags implements Interface
    19  func (o *RekorOptions) AddFlags(cmd *cobra.Command, v *viper.Viper) error {
    20  	cmd.Flags().StringVar(&o.URL, "rekor-url", DefaultRekorURL,
    21  		"address of rekor STL server")
    22  	return bindRekorConfigOptions(cmd.Flags(), v)
    23  }
    24  
    25  //nolint:revive
    26  func bindRekorConfigOptions(flags *pflag.FlagSet, v *viper.Viper) error {
    27  	// TODO: config re-design
    28  	if err := v.BindPFlag("attest.rekor-url", flags.Lookup("rekor-url")); err != nil {
    29  		return err
    30  	}
    31  
    32  	return nil
    33  }