|
@@ -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
|
|
|
}
|