refactor: Update root command to load EnvImpl from cobra flags

This commit is contained in:
Prad Nukala 2024-12-10 15:21:09 -05:00
parent ebb89facbd
commit e94ce3b1cc

View File

@ -5,15 +5,16 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
) )
// Command line flags
var ( var (
FlagServePort int servePort int
FlagConfigDir string configDir string
FlagSqliteFile string sqliteFile string
FlagChainId string chainId string
FlagIpfsGatewayUrl string ipfsGatewayUrl string
FlagSonrApiUrl string sonrApiUrl string
FlagSonrGrpcUrl string sonrGrpcUrl string
FlagSonrRpcUrl string sonrRpcUrl string
) )
func NewRootCmd() *cobra.Command { func NewRootCmd() *cobra.Command {
@ -24,29 +25,24 @@ func NewRootCmd() *cobra.Command {
cmd.Help() cmd.Help()
}, },
} }
cmd.Flags().IntVar(&servePort, "serve-port", FlagServePort, "Port to serve the gateway on") cmd.Flags().IntVar(&servePort, "serve-port", 8080, "Port to serve the gateway on")
cmd.Flags().StringVar(&configDir, "config-dir", FlagConfigDir, "Directory to store config files") cmd.Flags().StringVar(&configDir, "config-dir", "", "Directory to store config files")
cmd.Flags().StringVar(&sqliteFile, "sqlite-file", FlagSqliteFile, "File to store sqlite database") cmd.Flags().StringVar(&sqliteFile, "sqlite-file", "", "File to store sqlite database")
cmd.Flags().StringVar(&chainId, "chain-id", FlagChainId, "Chain ID") cmd.Flags().StringVar(&chainId, "chain-id", "", "Chain ID")
cmd.Flags().StringVar(&ipfsGatewayUrl, "ipfs-gateway-url", FlagIpfsGatewayUrl, "IPFS gateway URL") cmd.Flags().StringVar(&ipfsGatewayUrl, "ipfs-gateway-url", "", "IPFS gateway URL")
cmd.Flags().StringVar(&sonrApiUrl, "sonr-api-url", FlagSonrApiUrl, "Sonr API URL") cmd.Flags().StringVar(&sonrApiUrl, "sonr-api-url", "", "Sonr API URL")
cmd.Flags().StringVar(&sonrGrpcUrl, "sonr-grpc-url", FlagSonrGrpcUrl, "Sonr gRPC URL") cmd.Flags().StringVar(&sonrGrpcUrl, "sonr-grpc-url", "", "Sonr gRPC URL")
cmd.Flags().StringVar(&sonrRpcUrl, "sonr-rpc-url", "", "Sonr RPC URL")
return cmd return cmd
} }
func loadEnvImplFromArgs(args []string) (config.Env, error) { func loadEnvImplFromArgs(args []string) (config.Env, error) {
var servePort int
var configDir string
var sqliteFile string
var chainId string
var ipfsGatewayUrl string
var sonrApiUrl string
var sonrGrpcUrl string
var sonrRpcUrl string
cmd := NewRootCmd() cmd := NewRootCmd()
if err := cmd.ParseFlags(args); err != nil {
return nil, err
}
env := config.EnvImpl{ env := &config.EnvImpl{
ServePort: servePort, ServePort: servePort,
ConfigDir: configDir, ConfigDir: configDir,
SqliteFile: sqliteFile, SqliteFile: sqliteFile,
@ -56,5 +52,5 @@ func loadEnvImplFromArgs(args []string) (config.Env, error) {
SonrGrpcUrl: sonrGrpcUrl, SonrGrpcUrl: sonrGrpcUrl,
SonrRpcUrl: sonrRpcUrl, SonrRpcUrl: sonrRpcUrl,
} }
return &env, nil return env, nil
} }