]> git.lizzy.rs Git - micro.git/blobdiff - tools/build-version.go
Adjust default keybinding text (#2293)
[micro.git] / tools / build-version.go
index a8e68d01c9eb8affb593f86a9a6d6f68f4b7507e..8194fba66497ff2631cb82e4173f764a79253779 100644 (file)
@@ -1,3 +1,5 @@
+//+build ignore
+
 package main
 
 import (
@@ -20,19 +22,27 @@ func getTag(match ...string) (string, *semver.PRVersion) {
                        if ahead, err := semver.NewPRVersion(tagParts[1]); err == nil {
                                return tagParts[0], &ahead
                        }
+               } else if len(tagParts) == 4 {
+                       if ahead, err := semver.NewPRVersion(tagParts[2]); err == nil {
+                               return tagParts[0] + "-" + tagParts[1], &ahead
+                       }
                }
 
-               return tagParts[0], nil
+               return string(tag), nil
        }
 }
 
 func main() {
+       if tags, err := exec.Command("git", "tag").Output(); err != nil || len(tags) == 0 {
+               // no tags found -- fetch them
+               exec.Command("git", "fetch", "--tags").Run()
+       }
        // Find the last vX.X.X Tag and get how many builds we are ahead of it.
        versionStr, ahead := getTag("--match", "v*")
        version, err := semver.ParseTolerant(versionStr)
        if err != nil {
                // no version tag found so just return what ever we can find.
-               fmt.Println(getTag())
+               fmt.Println("0.0.0-unknown")
                return
        }
        // Get the tag of the current revision.
@@ -45,11 +55,13 @@ func main() {
        }
 
        // If we don't have any tag assume "dev"
-       if tag == "" {
+       if tag == "" || strings.HasPrefix(tag, "nightly") {
                tag = "dev"
        }
        // Get the most likely next version:
-       version.Patch = version.Patch + 1
+       if !strings.Contains(version.String(), "rc") {
+               version.Patch = version.Patch + 1
+       }
 
        if pr, err := semver.NewPRVersion(tag); err == nil {
                // append the tag as pre-release name