42 lines
1.1 KiB
Go
42 lines
1.1 KiB
Go
// +build ignore
|
|
|
|
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"io/ioutil"
|
|
"os"
|
|
"os/exec"
|
|
"regexp"
|
|
"strings"
|
|
)
|
|
|
|
const replace = `this\.version = "[0-9]\.[0-9]{2}\.[0-9]{2}";`
|
|
const replaceCommit = `this\.commit = \"[a-z0-9]{40}\"\;`
|
|
|
|
func main() {
|
|
fmt.Println("RUNNING: ./source/generate_version.go")
|
|
version, _ := ioutil.ReadFile("../version.txt")
|
|
apiJsFile, _ := ioutil.ReadFile("../frontend/src/API.js")
|
|
|
|
w := bytes.NewBuffer(nil)
|
|
cmd := exec.Command("git", "rev-parse", "HEAD")
|
|
cmd.Stdout = w
|
|
cmd.Run()
|
|
gitCommit := strings.TrimSpace(w.String())
|
|
|
|
fmt.Println("git commit: ", gitCommit)
|
|
|
|
replaceWith := `this.version = "` + strings.TrimSpace(string(version)) + `";`
|
|
replaceCommitWith := `this.commit = "` + gitCommit + `";`
|
|
|
|
vRex := regexp.MustCompile(replace)
|
|
newApiFile := vRex.ReplaceAllString(string(apiJsFile), replaceWith)
|
|
cRex := regexp.MustCompile(replaceCommit)
|
|
newApiFile = cRex.ReplaceAllString(newApiFile, replaceCommitWith)
|
|
|
|
fmt.Printf("Setting version %s to frontend/src/API.js\n", string(version))
|
|
ioutil.WriteFile("../frontend/src/API.js", []byte(newApiFile), os.FileMode(0755))
|
|
}
|