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 }