Browse Source

增强日志及出错处理

TangLin 1 năm trước cách đây
mục cha
commit
c7ef6a1829
2 tập tin đã thay đổi với 66 bổ sung44 xóa
  1. 65 43
      cmd/go-pre-version/main.go
  2. 1 1
      go.mod

+ 65 - 43
cmd/go-pre-version/main.go

@@ -13,22 +13,27 @@ func main() {
 	versionFile := "version"
 	b, err := os.ReadFile(versionFile)
 	if err != nil {
-		file, err := os.OpenFile(versionFile, os.O_RDWR|os.O_CREATE, 0777)
-		if err != nil {
-			fmt.Println(err)
-			return
-		}
-		defer file.Close()
-		file.WriteString("v1.0.0")
-		cmd := exec.Command("git", "add", versionFile)
-		err = cmd.Run()
-		if err != nil {
-			fmt.Println(err)
+		if os.IsNotExist(err) {
+			file, err := os.OpenFile(versionFile, os.O_RDWR|os.O_CREATE, 0777)
+			if err != nil {
+				fmt.Printf("create file %s error: %v\n", versionFile, err)
+				os.Exit(1)
+			}
+			defer file.Close()
+			file.WriteString("v1.0.0") // 初始版本
+			cmd := exec.Command("git", "add", versionFile)
+			err = cmd.Run()
+			if err != nil {
+				fmt.Printf("git add %s error: %v\n", versionFile, err)
+				os.Exit(1)
+			}
+			return // 正常返回
+		} else {
+			fmt.Printf("read file ./version error: %v\n", err)
+			os.Exit(1)
 		}
-		return
 	}
-	fmt.Println("old version", string(b))
-	file, err := os.OpenFile("version", os.O_RDWR|os.O_TRUNC, 0777)
+	file, err := os.OpenFile(versionFile, os.O_RDWR|os.O_TRUNC, 0777)
 	if err != nil {
 		fmt.Println(err)
 		return
@@ -43,44 +48,61 @@ func main() {
 	}
 	bs[len(bs)-1] = []byte(fmt.Sprintf("%d", i+1))
 	tb := bytes.Join(bs, []byte{'.'})
-	fmt.Println("new version", string(tb))
-	file.Write(tb)
+	_, err = file.Write(tb)
+	if err != nil {
+		fmt.Println("write new version error:", err)
+		os.Exit(1)
+	}
 	cmd := exec.Command("git", "add", versionFile)
 	err = cmd.Run()
 	if err != nil {
-		fmt.Println(err)
+		fmt.Printf("git add %s error: %v\n", versionFile, err)
+		os.Exit(1)
 	}
+	fmt.Printf("from version %s to %s\n", string(b), string(tb))
+
 	// Windows编译版本文件
 	winVersionFile := "./versioninfo.json"
 	_, err = os.Stat(winVersionFile)
+	var exist bool
 	if err != nil {
-		return
-	}
-	winB, err := os.ReadFile(winVersionFile)
-	if err != nil {
-		fmt.Println("open ", winVersionFile, "error: ", err)
-		return
-	}
-	fmt.Println("xxxxxxxxxx", len(winB))
-	var winV windowsVersion
-	err = json.Unmarshal(winB, &winV)
-	if err != nil {
-		fmt.Println("invalid format of Windows version info: xxxx", err, string(winB))
-	}
-	winV.StringFileInfo.ProductVersion = string(tb)
-	file1, _ := os.OpenFile(winVersionFile, os.O_RDWR|os.O_TRUNC, 0777)
-	defer file1.Close()
-	vb, _ := json.MarshalIndent(winV, "", "    ")
-	_, err = file1.Write(vb)
-	if err != nil {
-		fmt.Println("write new windows version error: ", err)
-		return
+		if !os.IsNotExist(err) {
+			fmt.Printf("stat file %s error: %v\n", winVersionFile, err)
+			os.Exit(1)
+		} else {
+			fmt.Println("xxxxxxxxx 无 ", winVersionFile)
+			return // 正常返回
+		}
+	} else {
+		exist = true
 	}
-	cmd2 := exec.Command("git", "add", winVersionFile)
-	err = cmd2.Run()
-	if err != nil {
-		fmt.Println(err)
-		return
+	if exist {
+		winB, err := os.ReadFile(winVersionFile)
+		if err != nil {
+			fmt.Println("open ", winVersionFile, "error: ", err)
+			os.Exit(1)
+		}
+		var winV windowsVersion
+		err = json.Unmarshal(winB, &winV)
+		if err != nil {
+			fmt.Println("invalid format of Windows version info: ", err, string(winB))
+			os.Exit(1)
+		}
+		winV.StringFileInfo.ProductVersion = string(tb)
+		file1, _ := os.OpenFile(winVersionFile, os.O_RDWR|os.O_TRUNC, 0777)
+		defer file1.Close()
+		vb, _ := json.MarshalIndent(winV, "", "    ")
+		_, err = file1.Write(vb)
+		if err != nil {
+			fmt.Println("write new windows version error: ", err)
+			os.Exit(1)
+		}
+		cmd2 := exec.Command("git", "add", winVersionFile)
+		err = cmd2.Run()
+		if err != nil {
+			fmt.Printf("git add %s error: %v\n", winVersionFile, err)
+			os.Exit(1)
+		}
 	}
 }
 

+ 1 - 1
go.mod

@@ -1,3 +1,3 @@
 module git.data-turing.com/soft/git-pre-commit
 
-go 1.18
+go 1.21