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,16 +2,12 @@ package config
import "github.com/urfave/cli/v2" import "github.com/urfave/cli/v2"
var Command *cli.Command var Command = &cli.Command{
Name: "config",
func init() { Usage: "config some settings",
Command = &cli.Command{ Subcommands: []*cli.Command{
Name: "config", UserCommand,
Usage: "config some settings", DatabaseCommand,
Subcommands: []*cli.Command{ DNSCommand,
UserCommand, },
DatabaseCommand,
DNSCommand,
},
}
} }

View File

@ -7,23 +7,19 @@ import (
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
) )
var DatabaseCommand *cli.Command var migrationCommand = &cli.Command{
Name: "migrate",
Usage: "migrate database",
Action: migrateDatabase,
}
func init() { var DatabaseCommand = &cli.Command{
migrationCommand := &cli.Command{ Name: "database",
Name: "migrate", Usage: "database administration",
Usage: "migrate database", Aliases: []string{"db"},
Action: migrateDatabase, Subcommands: []*cli.Command{
} migrationCommand,
},
DatabaseCommand = &cli.Command{
Name: "database",
Usage: "database administration",
Aliases: []string{"db"},
Subcommands: []*cli.Command{
migrationCommand,
},
}
} }
func migrateDatabase(c *cli.Context) error { func migrateDatabase(c *cli.Context) error {

View File

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

View File

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

View File

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

18
main.go
View File

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