cmd is ok
This commit is contained in:
parent
9465bb885d
commit
29f75938bb
@ -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,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -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 {
|
||||||
|
@ -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 {
|
||||||
|
@ -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 {
|
||||||
|
@ -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
18
main.go
@ -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 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user