app.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. //go:build createApp
  2. package server
  3. import (
  4. "bytes"
  5. "fmt"
  6. "log"
  7. "text/template"
  8. "IotAdmin/core/sdk/pkg"
  9. "IotAdmin/core/sdk/pkg/utils"
  10. _ "IotAdmin/migration/version"
  11. _ "IotAdmin/migration/version-local"
  12. "github.com/spf13/pflag"
  13. )
  14. var (
  15. //获取命令行参数
  16. appName = pflag.StringP("name", "n", "", "选择租户域名")
  17. )
  18. func Init() {
  19. if *appName == "" {
  20. fmt.Println(`请输入应用名称 -n={应用名称}`)
  21. log.Println("arg `name` invalid :name is empty")
  22. } else {
  23. err := setup(*appName)
  24. if err != nil {
  25. log.Println("创建应用失败:" + err.Error())
  26. }
  27. }
  28. }
  29. func setup(name string) error {
  30. path := "app/"
  31. appPath := path + name
  32. fmt.Println(`开始创建应用 => ` + appPath)
  33. err := utils.IsNotExistMkDir(appPath)
  34. if err != nil {
  35. return err
  36. }
  37. apiPath := appPath + "/apis/"
  38. err = utils.IsNotExistMkDir(apiPath)
  39. if err != nil {
  40. return err
  41. }
  42. modelsPath := appPath + "/models/"
  43. err = utils.IsNotExistMkDir(modelsPath)
  44. if err != nil {
  45. return err
  46. }
  47. routerPath := appPath + "/router/"
  48. err = utils.IsNotExistMkDir(routerPath)
  49. if err != nil {
  50. return err
  51. }
  52. servicePath := appPath + "/service/"
  53. err = utils.IsNotExistMkDir(servicePath)
  54. if err != nil {
  55. return err
  56. }
  57. dtoPath := appPath + "/service/dto/"
  58. err = utils.IsNotExistMkDir(dtoPath)
  59. if err != nil {
  60. return err
  61. }
  62. tInitRouter, err := template.ParseFiles("template/router.init.template")
  63. if err != nil {
  64. return err
  65. }
  66. m := map[string]string{}
  67. m["appName"] = name
  68. var bInitRouter bytes.Buffer
  69. err = tInitRouter.Execute(&bInitRouter, m)
  70. pkg.FileCreate(bInitRouter, "./app/router/"+name+".go")
  71. tRouter, err := template.ParseFiles("template/router.app.template")
  72. var bRouter bytes.Buffer
  73. err = tRouter.Execute(&bRouter, nil)
  74. pkg.FileCreate(bRouter, appPath+"/router/router.go")
  75. fmt.Println(name + ` 应用创建成功`)
  76. return nil
  77. }