Files
dev-service/pkg/cmds/root.go
itzaname 8a448ea9dc
All checks were successful
continuous-integration/drone/push Build is passing
Display rate limit
2025-06-22 22:55:17 -04:00

99 lines
2.0 KiB
Go

package cmds
import (
log "github.com/sirupsen/logrus"
"github.com/urfave/cli/v2"
"os"
"path/filepath"
)
var (
appName = filepath.Base(os.Args[0])
commonFlag = []cli.Flag{
&cli.BoolFlag{
Name: "debug",
Usage: "Enable debug logging",
EnvVars: []string{"DEBUG"},
Value: false,
Action: func(ctx *cli.Context, debug bool) error {
if debug {
log.SetLevel(log.DebugLevel)
log.SetFormatter(&log.TextFormatter{})
log.SetReportCaller(false)
}
return nil
},
},
&cli.StringFlag{
Name: "pg-host",
Usage: "Host of postgres database",
EnvVars: []string{"PG_HOST"},
Required: true,
},
&cli.IntFlag{
Name: "pg-port",
Usage: "Port of postgres database",
EnvVars: []string{"PG_PORT"},
Required: true,
},
&cli.StringFlag{
Name: "pg-db",
Usage: "Name of database to connect to",
EnvVars: []string{"PG_DB"},
Required: true,
},
&cli.StringFlag{
Name: "pg-user",
Usage: "User to connect with",
EnvVars: []string{"PG_USER"},
Required: true,
},
&cli.StringFlag{
Name: "pg-password",
Usage: "Password to connect with",
EnvVars: []string{"PG_PASSWORD"},
Required: true,
},
&cli.BoolFlag{
Name: "migrate",
Usage: "Run database migrations",
Value: true,
EnvVars: []string{"MIGRATE"},
},
&cli.IntFlag{
Name: "port",
Usage: "Port to listen on",
Value: 8080,
EnvVars: []string{"PORT"},
},
&cli.StringFlag{
Name: "redis-addr",
Usage: "Address of redis database",
EnvVars: []string{"REDIS_ADDR"},
Required: true,
},
&cli.StringFlag{
Name: "redis-pass",
Usage: "Password of redis database",
EnvVars: []string{"REDIS_PASS"},
Required: false,
Value: "",
},
&cli.IntFlag{
Name: "redis-db",
Usage: "Number of database to connect to",
EnvVars: []string{"REDIS_DB"},
Required: true,
},
}
)
func NewApp() *cli.App {
app := cli.NewApp()
app.Name = appName
app.Usage = "Dev portal"
app.Flags = commonFlag
return app
}