瀏覽代碼

支持生成默认配置文件

Jollia Dai 2 月之前
父節點
當前提交
47d8e8fc5a
共有 2 個文件被更改,包括 30 次插入2 次删除
  1. 4 2
      services/config.go
  2. 26 0
      services/gen_service.go

+ 4 - 2
services/config.go

@@ -15,8 +15,9 @@ type DbConfig struct {
 }
 
 var (
-	dbConfigFlag    *DbConfig
-	cfgFilePathFlag string
+	dbConfigFlag      *DbConfig
+	cfgFilePathFlag   string
+	createCfgFileFlag bool
 )
 
 func init() {
@@ -27,6 +28,7 @@ func init() {
 	flag.StringVar(&dbConfigFlag.User, "u", "", "database user")
 	flag.StringVar(&dbConfigFlag.Pwd, "P", "", "database password")
 	flag.StringVar(&cfgFilePathFlag, "c", "", "database config file path")
+	flag.BoolVar(&createCfgFileFlag, "g", false, "create default config file")
 }
 
 func (cfg *DbConfig) IsZero() bool {

+ 26 - 0
services/gen_service.go

@@ -30,6 +30,10 @@ func (s *GenService) Init() error {
 		flag.Parse()
 	}
 
+	if createCfgFileFlag {
+		return nil
+	}
+
 	var (
 		dbCfg       *DbConfig
 		cfgFilePath string
@@ -127,6 +131,28 @@ func (s *GenService) Start() error {
 	log.Warn("Enter: GenService.Start")
 	defer log.Warn("Leave: GenService.Start")
 
+	if createCfgFileFlag {
+		cfgFilePath := cfgFilePathFlag
+		if cfgFilePath == "" {
+			cfgFilePath = defCfgFilePath
+		}
+
+		if jokode.FileExists(cfgFilePath) {
+			return errors.Errorf("try create default config file '%s', but the file exists already", cfgFilePath)
+		}
+
+		cfg := &DbConfig{
+			Host:   "localhost",
+			Port:   3306,
+			User:   "root",
+			Pwd:    "123456",
+			Schema: "db",
+			Tables: []string{"users", "roles"},
+		}
+
+		return errors.Wrapf(jokode.SaveConfigToFile(cfg, cfgFilePath), "try create default config file '%s' fail", cfgFilePath)
+	}
+
 	if s.dbInstance == nil {
 		return errors.New("try start gen service with nil database instance")
 	}