76 lines
1.6 KiB
Go
76 lines
1.6 KiB
Go
package controller
|
||
|
||
import (
|
||
"SciencesServer/config"
|
||
"SciencesServer/serve/logger"
|
||
"SciencesServer/utils"
|
||
"fmt"
|
||
"os"
|
||
"path"
|
||
"strings"
|
||
|
||
"github.com/spf13/cobra"
|
||
)
|
||
|
||
var ControllerCommand = &cobra.Command{
|
||
Use: "make:controller",
|
||
Short: "quick make controller",
|
||
Example: "ctl make:controller -f sys_user -t sys_user",
|
||
Version: *config.Version,
|
||
}
|
||
|
||
var (
|
||
file string
|
||
address string
|
||
)
|
||
|
||
func init() {
|
||
ControllerCommand.Flags().StringVarP(&file, "file", "f", "", "The file name.")
|
||
ControllerCommand.Flags().StringVarP(&address, "address", "a", "", "The file controller address")
|
||
ControllerCommand.Run = func(cmd *cobra.Command, args []string) {
|
||
utils.TryCatch(func() {
|
||
if file == "" {
|
||
logger.ErrorF("Filename Not Nil")
|
||
return
|
||
}
|
||
output := "../../app/controller"
|
||
|
||
if address == "" {
|
||
logger.ErrorF("Address Not Nil")
|
||
return
|
||
}
|
||
// 解析文件地址
|
||
address = strings.Replace(address, "/", "", -1)
|
||
addresss := strings.Split(address, "/")
|
||
|
||
file := strings.ToLower(file)
|
||
|
||
dir, err := os.Getwd()
|
||
|
||
output = path.Join(dir, output+"/"+address)
|
||
|
||
if err != nil {
|
||
logger.ErrorF("Make Controller Error:%v", err)
|
||
return
|
||
}
|
||
if err = utils.PrepareOutput(output); err != nil {
|
||
logger.ErrorF("Make Controller Error:%v", err)
|
||
return
|
||
}
|
||
fmt.Println(output)
|
||
|
||
modelFile := &ControllerFile{
|
||
Name: addresss[len(addresss)-1],
|
||
StrutName: utils.ToSnake(file, "_"),
|
||
}
|
||
err = modelFile.Execute(path.Join(output, file+".go"), "controller", ControllerTemplate)
|
||
|
||
if err != nil {
|
||
logger.ErrorF("Make Controller Error:%v", err)
|
||
return
|
||
}
|
||
return
|
||
})
|
||
}
|
||
}
|