2024-12-10 15:15:24 -05:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/onsonr/sonr/internal/gateway/config"
|
|
|
|
"github.com/spf13/cobra"
|
|
|
|
)
|
|
|
|
|
2024-12-10 15:21:09 -05:00
|
|
|
// Command line flags
|
2024-12-10 15:21:08 -05:00
|
|
|
var (
|
2024-12-10 15:21:09 -05:00
|
|
|
servePort int
|
|
|
|
configDir string
|
|
|
|
sqliteFile string
|
|
|
|
chainId string
|
|
|
|
ipfsGatewayUrl string
|
|
|
|
sonrApiUrl string
|
|
|
|
sonrGrpcUrl string
|
|
|
|
sonrRpcUrl string
|
2024-12-10 15:21:08 -05:00
|
|
|
)
|
|
|
|
|
2024-12-10 15:15:24 -05:00
|
|
|
func NewRootCmd() *cobra.Command {
|
2024-12-10 15:21:08 -05:00
|
|
|
cmd := &cobra.Command{
|
2024-12-10 15:15:24 -05:00
|
|
|
Use: "hway",
|
|
|
|
Short: "Sonr DID gateway",
|
|
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
|
|
cmd.Help()
|
|
|
|
},
|
|
|
|
}
|
2024-12-10 15:21:09 -05:00
|
|
|
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")
|
2024-12-10 15:21:08 -05:00
|
|
|
return cmd
|
2024-12-10 15:15:24 -05:00
|
|
|
}
|
|
|
|
|
2024-12-10 15:21:08 -05:00
|
|
|
func loadEnvImplFromArgs(args []string) (config.Env, error) {
|
|
|
|
cmd := NewRootCmd()
|
2024-12-10 15:21:09 -05:00
|
|
|
if err := cmd.ParseFlags(args); err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
2024-12-10 15:21:08 -05:00
|
|
|
|
2024-12-10 15:21:09 -05:00
|
|
|
env := &config.EnvImpl{
|
2024-12-10 15:15:24 -05:00
|
|
|
ServePort: servePort,
|
|
|
|
ConfigDir: configDir,
|
|
|
|
SqliteFile: sqliteFile,
|
|
|
|
ChainId: chainId,
|
|
|
|
IpfsGatewayUrl: ipfsGatewayUrl,
|
|
|
|
SonrApiUrl: sonrApiUrl,
|
|
|
|
SonrGrpcUrl: sonrGrpcUrl,
|
|
|
|
SonrRpcUrl: sonrRpcUrl,
|
|
|
|
}
|
2024-12-10 15:21:09 -05:00
|
|
|
return env, nil
|
2024-12-10 15:15:24 -05:00
|
|
|
}
|