github.com/celestiaorg/celestia-node@v0.15.0-beta.1/nodebuilder/gateway/flags.go (about)

     1  package gateway
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/spf13/cobra"
     7  	flag "github.com/spf13/pflag"
     8  )
     9  
    10  var (
    11  	enabledFlag = "gateway"
    12  	addrFlag    = "gateway.addr"
    13  	portFlag    = "gateway.port"
    14  )
    15  
    16  // Flags gives a set of hardcoded node/gateway package flags.
    17  func Flags() *flag.FlagSet {
    18  	flags := &flag.FlagSet{}
    19  
    20  	flags.Bool(
    21  		enabledFlag,
    22  		false,
    23  		"Enables the REST gateway",
    24  	)
    25  	flags.String(
    26  		addrFlag,
    27  		"",
    28  		fmt.Sprintf("Set a custom gateway listen address (default: %s)", defaultBindAddress),
    29  	)
    30  	flags.String(
    31  		portFlag,
    32  		"",
    33  		fmt.Sprintf("Set a custom gateway port (default: %s)", defaultPort),
    34  	)
    35  
    36  	return flags
    37  }
    38  
    39  // ParseFlags parses gateway flags from the given cmd and saves them to the passed config.
    40  func ParseFlags(cmd *cobra.Command, cfg *Config) {
    41  	enabled, err := cmd.Flags().GetBool(enabledFlag)
    42  	if cmd.Flags().Changed(enabledFlag) && err == nil {
    43  		cfg.Enabled = enabled
    44  	}
    45  	addr, port := cmd.Flag(addrFlag), cmd.Flag(portFlag)
    46  	if !cfg.Enabled && (addr.Changed || port.Changed) {
    47  		log.Warn("custom address or port provided without enabling gateway, setting config values")
    48  	}
    49  	addrVal := addr.Value.String()
    50  	if addrVal != "" {
    51  		cfg.Address = addrVal
    52  	}
    53  	portVal := port.Value.String()
    54  	if portVal != "" {
    55  		cfg.Port = portVal
    56  	}
    57  }