فهرست منبع

重构命令行参数解析代码, 增加可读性

zou.yingbin 4 سال پیش
والد
کامیت
2a0f1fef62
2فایلهای تغییر یافته به همراه29 افزوده شده و 27 حذف شده
  1. 28 0
      controllers/other/cmdline.go
  2. 1 27
      main.go

+ 28 - 0
controllers/other/cmdline.go

@@ -0,0 +1,28 @@
+/**
+* @Author: zou.yingbin
+* @Create  : 2021/10/20 9:14
+* @Modify  : 2021/10/20 9:14
+* @note    : 解释命令行参数
+ */
+
+package other
+
+// CmdLine 命令行参数
+type CmdLine struct {
+	OriCmd []string // 原始命令行参数
+}
+
+// IsInit 是否初始化某项, item 某项, 如 oracle
+func (r *CmdLine) IsInit(item string) bool {
+	for i, v := range r.OriCmd {
+		if v == "init" {
+			// k := i + 1, 从init位置之后找参数
+			for k := i + 1; k < len(r.OriCmd); k++ {
+				if r.OriCmd[k] == item {
+					return true
+				}
+			}
+		}
+	}
+	return false
+}

+ 1 - 27
main.go

@@ -32,37 +32,11 @@ import (
 //
 // @BasePath /api
 
-// cmdLine 命令行参数
-type cmdLine struct {
-	StrCmd []string
-}
-
 var _VERSION_ = "default"
 var _GITHASH_ = "default"
 
-// IsInit 是否初始化某项, 如 IsInit("redis")
-func (r *cmdLine) IsInit(item string) bool {
-	if len(r.StrCmd) <= 1 {
-		return true
-	}
-	if len(r.StrCmd) >= 2 {
-		if r.StrCmd[1] == "init" {
-			for i := 2; i < len(r.StrCmd); i++ {
-				if r.StrCmd[i] == item {
-					logger.GetLogger().Info("cmdline init ", item)
-					return true
-				}
-			}
-			return false
-		} else {
-			return true
-		}
-	}
-	return true
-}
-
 func main() {
-	cmd := cmdLine{StrCmd: os.Args}
+	cmd := other.CmdLine{OriCmd: os.Args}
 	// 初始化配置
 	err := config.SerCfg.Init("config/config.xml")
 	if err != nil {