// +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)) }