Selaa lähdekoodia

添加对windows版本文件的修改支持

TangLin 2 vuotta sitten
vanhempi
commit
1e86789bee
1 muutettua tiedostoa jossa 76 lisäystä ja 2 poistoa
  1. 76 2
      cmd/go-pre-version/main.go

+ 76 - 2
cmd/go-pre-version/main.go

@@ -2,15 +2,15 @@ package main
 
 import (
 	"bytes"
+	"encoding/json"
 	"fmt"
-	"io/ioutil"
 	"os"
 	"os/exec"
 	"strconv"
 )
 
 func main() {
-	b, err := ioutil.ReadFile("version")
+	b, err := os.ReadFile("version")
 	if err != nil {
 		file, err := os.OpenFile("version", os.O_RDWR|os.O_CREATE, 0777)
 		if err != nil {
@@ -49,4 +49,78 @@ func main() {
 	if err != nil {
 		fmt.Println(err)
 	}
+	winVersionFile := "versioninfo.json"
+	_, err = os.Stat(winVersionFile)
+	if err != nil {
+		return
+	}
+	winB, err := os.ReadFile(winVersionFile)
+	if err != nil {
+		fmt.Println("open ", winVersionFile, "error: ", err)
+		return
+	}
+	var winV windowsVersion
+	err = json.Unmarshal(winB, &winV)
+	if err != nil {
+		fmt.Println("invalid format of Windows version info: ", err)
+	}
+	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
+	}
+	cmd2 := exec.Command("git", "add", winVersionFile)
+	err = cmd2.Run()
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+}
+
+type windowsVersion struct {
+	FixedFileInfo struct {
+		FileVersion struct {
+			Major int
+			Minor int
+			Patch int
+			Build int
+		}
+		ProductVersion struct {
+			Major int
+			Minor int
+			Patch int
+			Build int
+		}
+		FileFlagsMask string
+		FileFlags     string
+		FileOS        string
+		FileType      string
+		FileSubType   string
+	}
+	StringFileInfo struct {
+		Comments         string
+		CompanyName      string
+		FileDescription  string
+		FileVersion      string
+		InternalName     string
+		LegalCopyright   string
+		LegalTrademarks  string
+		OriginalFilename string
+		PrivateBuild     string
+		ProductName      string
+		ProductVersion   string
+		SpecialBuild     string
+	}
+	VarFileInfo struct {
+		Translation struct {
+			LangID    string
+			CharsetID string
+		}
+	}
+	IconPath     string
+	ManifestPath string
 }