99 lines
2.0 KiB
Go
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
|
|
}
|