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 }