1
This commit is contained in:
17
cmd/config/config.go
Normal file
17
cmd/config/config.go
Normal file
@@ -0,0 +1,17 @@
|
||||
package config
|
||||
|
||||
import "github.com/urfave/cli/v2"
|
||||
|
||||
var Command *cli.Command
|
||||
|
||||
func init() {
|
||||
Command = &cli.Command{
|
||||
Name: "config",
|
||||
Usage: "config some settings",
|
||||
Subcommands: []*cli.Command{
|
||||
UserCommand,
|
||||
DatabaseCommand,
|
||||
DNSCommand,
|
||||
},
|
||||
}
|
||||
}
|
36
cmd/config/database.go
Normal file
36
cmd/config/database.go
Normal file
@@ -0,0 +1,36 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"reCoreD-UI/controllers"
|
||||
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
var DatabaseCommand *cli.Command
|
||||
|
||||
func init() {
|
||||
migrationCommand := &cli.Command{
|
||||
Name: "migrate",
|
||||
Usage: "migrate database",
|
||||
Action: migrateDatabase,
|
||||
}
|
||||
|
||||
DatabaseCommand = &cli.Command{
|
||||
Name: "database",
|
||||
Usage: "database administration",
|
||||
Aliases: []string{"db"},
|
||||
Subcommands: []*cli.Command{
|
||||
migrationCommand,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func migrateDatabase(c *cli.Context) error {
|
||||
controller, err := controllers.NewController(c.String("mysql-dsn"))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer controller.Close()
|
||||
|
||||
return controller.Migrate()
|
||||
}
|
35
cmd/config/dns.go
Normal file
35
cmd/config/dns.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"reCoreD-UI/controllers"
|
||||
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
var DNSCommand *cli.Command
|
||||
|
||||
func init() {
|
||||
DNSCommand = &cli.Command{
|
||||
Name: "dns",
|
||||
Usage: "Config DNS Settings",
|
||||
Flags: []cli.Flag{
|
||||
&cli.StringSliceFlag{
|
||||
Name: "servers",
|
||||
Usage: "dns servers",
|
||||
Aliases: []string{"s"},
|
||||
Required: true,
|
||||
},
|
||||
},
|
||||
Action: setDNS,
|
||||
}
|
||||
}
|
||||
|
||||
func setDNS(c *cli.Context) error {
|
||||
controller, err := controllers.NewController(c.String("mysql-dsn"))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer controller.Close()
|
||||
|
||||
return controller.SetupDNS(c.StringSlice("servers")...)
|
||||
}
|
42
cmd/config/user.go
Normal file
42
cmd/config/user.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"reCoreD-UI/controllers"
|
||||
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
var UserCommand *cli.Command
|
||||
|
||||
func init() {
|
||||
UserCommand = &cli.Command{
|
||||
Name: "user",
|
||||
Usage: "set admin username and password",
|
||||
Flags: []cli.Flag{
|
||||
&cli.StringFlag{
|
||||
Name: "username",
|
||||
Aliases: []string{"u"},
|
||||
Value: "amdin",
|
||||
Usage: "admin username",
|
||||
EnvVars: []string{"RECORED_ADMIN_USERNAME"},
|
||||
},
|
||||
&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 {
|
||||
controller, err := controllers.NewController(c.String("mysql-dsn"))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer controller.Close()
|
||||
return controller.SetupAdmin(c.String("username"), c.String("password"))
|
||||
}
|
42
cmd/server/server.go
Normal file
42
cmd/server/server.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
webserver "reCoreD-UI/server"
|
||||
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
var Command *cli.Command
|
||||
|
||||
func init() {
|
||||
Command = &cli.Command{
|
||||
Name: "server",
|
||||
Usage: "run server",
|
||||
Flags: []cli.Flag{
|
||||
&cli.StringFlag{
|
||||
Name: "prefix",
|
||||
Value: "/",
|
||||
Usage: "web prefix",
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "listen",
|
||||
Value: "[::]",
|
||||
Usage: "IP for listen at",
|
||||
},
|
||||
&cli.IntFlag{
|
||||
Name: "port",
|
||||
Value: 8080,
|
||||
Usage: "Port for listen at",
|
||||
},
|
||||
},
|
||||
Action: runServer,
|
||||
}
|
||||
}
|
||||
|
||||
func runServer(c *cli.Context) error {
|
||||
server, err := webserver.NewServer(c)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return server.Run()
|
||||
}
|
Reference in New Issue
Block a user