this repo has no description
at main 1.4 kB view raw
1package main 2 3import ( 4 "context" 5 "fmt" 6 "log" 7 "os" 8 9 "github.com/bluesky-social/go-util/pkg/telemetry" 10 "github.com/urfave/cli/v2" 11 "github.com/vylet-app/go/database/server" 12) 13 14func main() { 15 app := cli.App{ 16 Name: "vylet-database", 17 Flags: []cli.Flag{ 18 telemetry.CLIFlagDebug, 19 telemetry.CLIFlagMetricsListenAddress, 20 &cli.StringFlag{ 21 Name: "listen-addr", 22 Value: ":9090", 23 EnvVars: []string{"VYLET_DATABASE_LISTEN_ADDR"}, 24 }, 25 &cli.StringSliceFlag{ 26 Name: "cassandra-addrs", 27 Value: cli.NewStringSlice("127.0.0.1"), 28 EnvVars: []string{"VYLET_DATABASE_CASSANDRA_ADDRS"}, 29 }, 30 &cli.StringFlag{ 31 Name: "cassandra-keyspace", 32 Value: "vylet", 33 EnvVars: []string{"VYLET_DATABASE_CASSANDRA_KEYSPACE"}, 34 }, 35 }, 36 Action: run, 37 } 38 39 if err := app.Run(os.Args); err != nil { 40 log.Fatal(err) 41 } 42} 43 44func run(cmd *cli.Context) error { 45 ctx := context.Background() 46 47 logger := telemetry.StartLogger(cmd) 48 telemetry.StartMetrics(cmd) 49 50 server, err := server.New(&server.Args{ 51 Logger: logger, 52 53 ListenAddr: cmd.String("listen-addr"), 54 CassandraAddrs: cmd.StringSlice("cassandra-addrs"), 55 CassandraKeyspace: cmd.String("cassandra-keyspace"), 56 }) 57 if err != nil { 58 return fmt.Errorf("failed to create new server: %w", err) 59 } 60 61 if err := server.Run(ctx); err != nil { 62 return fmt.Errorf("failed to run server: %w", err) 63 } 64 65 return nil 66}