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