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

     1  package rpc
     2  
     3  import (
     4  	"fmt"
     5  
     6  	logging "github.com/ipfs/go-log/v2"
     7  	"github.com/spf13/cobra"
     8  	flag "github.com/spf13/pflag"
     9  )
    10  
    11  var (
    12  	log      = logging.Logger("rpc")
    13  	addrFlag = "rpc.addr"
    14  	portFlag = "rpc.port"
    15  	authFlag = "rpc.skip-auth"
    16  )
    17  
    18  // Flags gives a set of hardcoded node/rpc package flags.
    19  func Flags() *flag.FlagSet {
    20  	flags := &flag.FlagSet{}
    21  
    22  	flags.String(
    23  		addrFlag,
    24  		"",
    25  		fmt.Sprintf("Set a custom RPC listen address (default: %s)", defaultBindAddress),
    26  	)
    27  	flags.String(
    28  		portFlag,
    29  		"",
    30  		fmt.Sprintf("Set a custom RPC port (default: %s)", defaultPort),
    31  	)
    32  	flags.Bool(
    33  		authFlag,
    34  		false,
    35  		"Skips authentication for RPC requests",
    36  	)
    37  
    38  	return flags
    39  }
    40  
    41  // ParseFlags parses RPC flags from the given cmd and saves them to the passed config.
    42  func ParseFlags(cmd *cobra.Command, cfg *Config) {
    43  	addr := cmd.Flag(addrFlag).Value.String()
    44  	if addr != "" {
    45  		cfg.Address = addr
    46  	}
    47  	port := cmd.Flag(portFlag).Value.String()
    48  	if port != "" {
    49  		cfg.Port = port
    50  	}
    51  	ok, err := cmd.Flags().GetBool(authFlag)
    52  	if err != nil {
    53  		panic(err)
    54  	}
    55  	if ok {
    56  		log.Warn("RPC authentication is disabled")
    57  		cfg.SkipAuth = true
    58  	}
    59  }