|
@@ -3,6 +3,7 @@ package main
|
|
|
import (
|
|
|
"bytes"
|
|
|
"encoding/json"
|
|
|
+ "flag"
|
|
|
"fmt"
|
|
|
"os"
|
|
|
"os/exec"
|
|
@@ -10,7 +11,45 @@ import (
|
|
|
)
|
|
|
|
|
|
func main() {
|
|
|
+ tagversion := flag.String("tagversion", "", "tag a version")
|
|
|
+ flag.Parse()
|
|
|
+ found := false
|
|
|
+ flag.Visit(func(f *flag.Flag) {
|
|
|
+ if f.Name == "tagversion" {
|
|
|
+ found = true
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
versionFile := "version"
|
|
|
+
|
|
|
+ if found { // 将版本打上一个tag
|
|
|
+ fmt.Println("tagging a version", *tagversion)
|
|
|
+ version, err := os.ReadFile(versionFile)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Printf("version file %s error: %v\n", versionFile, err)
|
|
|
+ os.Exit(1)
|
|
|
+ }
|
|
|
+ if len(version) == 0 {
|
|
|
+ fmt.Printf("version file %s empty\n", versionFile)
|
|
|
+ os.Exit(1)
|
|
|
+ }
|
|
|
+ fmt.Println("version is: ", string(version))
|
|
|
+ cmd := exec.Command("git", "tag", string(version), "-f")
|
|
|
+ err = cmd.Run()
|
|
|
+ if err != nil {
|
|
|
+ fmt.Printf("git tag %s error: %v\n", string(version), err)
|
|
|
+ os.Exit(1)
|
|
|
+ }
|
|
|
+ cmd = exec.Command("git", "push", "origin", "--tags")
|
|
|
+ err = cmd.Run()
|
|
|
+ if err != nil {
|
|
|
+ fmt.Printf("git push tag error: %v\n", err)
|
|
|
+ os.Exit(1)
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 修改版本并添加
|
|
|
b, err := os.ReadFile(versionFile)
|
|
|
if err != nil {
|
|
|
if os.IsNotExist(err) {
|