cmd is ok

This commit is contained in:
Sense T 2024-04-10 13:24:01 +08:00
parent 9465bb885d
commit 29f75938bb
6 changed files with 87 additions and 100 deletions

View File

@ -2,10 +2,7 @@ package config
import "github.com/urfave/cli/v2"
var Command *cli.Command
func init() {
Command = &cli.Command{
var Command = &cli.Command{
Name: "config",
Usage: "config some settings",
Subcommands: []*cli.Command{
@ -14,4 +11,3 @@ func init() {
DNSCommand,
},
}
}

View File

@ -7,16 +7,13 @@ import (
"github.com/urfave/cli/v2"
)
var DatabaseCommand *cli.Command
func init() {
migrationCommand := &cli.Command{
var migrationCommand = &cli.Command{
Name: "migrate",
Usage: "migrate database",
Action: migrateDatabase,
}
DatabaseCommand = &cli.Command{
var DatabaseCommand = &cli.Command{
Name: "database",
Usage: "database administration",
Aliases: []string{"db"},
@ -24,7 +21,6 @@ func init() {
migrationCommand,
},
}
}
func migrateDatabase(c *cli.Context) error {
if err := database.Connect(c.String("mysql-dsn")); err != nil {

View File

@ -5,25 +5,22 @@ import (
"reCoreD-UI/database"
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v2/altsrc"
)
var DNSCommand *cli.Command
func init() {
DNSCommand = &cli.Command{
var DNSCommand = &cli.Command{
Name: "dns",
Usage: "Config DNS Settings",
Flags: []cli.Flag{
&cli.StringSliceFlag{
altsrc.NewStringSliceFlag(&cli.StringSliceFlag{
Name: "servers",
Usage: "dns servers",
Aliases: []string{"s"},
Required: true,
},
}),
},
Action: setDNS,
}
}
func setDNS(c *cli.Context) error {
if err := database.Connect(c.String("mysql-dsn")); err != nil {

View File

@ -5,33 +5,30 @@ import (
"reCoreD-UI/database"
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v2/altsrc"
)
var UserCommand *cli.Command
func init() {
UserCommand = &cli.Command{
var UserCommand = &cli.Command{
Name: "user",
Usage: "set admin username and password",
Flags: []cli.Flag{
&cli.StringFlag{
altsrc.NewStringFlag(&cli.StringFlag{
Name: "username",
Aliases: []string{"u"},
Value: "amdin",
Usage: "admin username",
EnvVars: []string{"RECORED_ADMIN_USERNAME"},
},
&cli.StringFlag{
}),
altsrc.NewStringFlag(&cli.StringFlag{
Name: "passowrd",
Aliases: []string{"p"},
Required: true,
Usage: "admin password",
EnvVars: []string{"RECORED_ADMIN_PASSWORD"},
},
}),
},
Action: setUser,
}
}
func setUser(c *cli.Context) error {
if err := database.Connect(c.String("mysql-dsn")); err != nil {

View File

@ -4,34 +4,31 @@ import (
webserver "reCoreD-UI/server"
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v2/altsrc"
)
var Command *cli.Command
func init() {
Command = &cli.Command{
var Command = &cli.Command{
Name: "server",
Usage: "run server",
Flags: []cli.Flag{
&cli.StringFlag{
altsrc.NewStringFlag(&cli.StringFlag{
Name: "prefix",
Value: "/",
Usage: "web prefix",
},
&cli.StringFlag{
}),
altsrc.NewStringFlag(&cli.StringFlag{
Name: "listen",
Value: "[::]",
Usage: "IP for listen at",
},
&cli.IntFlag{
}),
altsrc.NewIntFlag(&cli.IntFlag{
Name: "port",
Value: 8080,
Usage: "Port for listen at",
},
}),
},
Action: runServer,
}
}
func runServer(c *cli.Context) error {
server, err := webserver.NewServer(c)

18
main.go
View File

@ -2,6 +2,8 @@ package main
import (
"os"
"reCoreD-UI/cmd/config"
"reCoreD-UI/cmd/server"
"github.com/sirupsen/logrus"
"github.com/urfave/cli/v2"
@ -18,17 +20,14 @@ func main() {
Name: "config",
Usage: "config yaml file",
Aliases: []string{"c"},
Value: "config.yaml",
EnvVars: []string{"RECORED_CONFIG_FILE"},
},
altsrc.NewStringSliceFlag(&cli.StringSliceFlag{}),
&cli.StringFlag{
altsrc.NewStringFlag(&cli.StringFlag{
Name: "mysql-dsn",
Usage: "mysql dsn",
Required: true,
EnvVars: []string{"RECORED_MYSQL_DSN"},
},
&cli.BoolFlag{
}),
altsrc.NewBoolFlag(&cli.BoolFlag{
Name: "debug",
Usage: "enable debug mode",
Value: false,
@ -38,16 +37,21 @@ func main() {
}
return nil
},
},
}),
}
app := &cli.App{
Name: "reCoreD-UI",
Usage: "Web UI for CoreDNS",
UseShortOptionHandling: true,
Before: altsrc.InitInputSourceWithContext(
flags, altsrc.NewYamlSourceFromFlagFunc("config"),
),
Flags: flags,
Commands: []*cli.Command{
server.Command,
config.Command,
},
}
if err := app.Run(os.Args); err != nil {