123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package main
-
- import (
- "encoding/json"
- "fmt"
- "io/ioutil"
- "os"
- "time"
-
- gogit "gopkg.in/src-d/go-git.v4"
- "gopkg.in/src-d/go-git.v4/plumbing/object"
- )
-
-
-
-
-
-
- func getDashboardsVersions() (versions map[string]int, err error) {
- versions = make(map[string]int)
-
- filename := *clonePath + "/versions.json"
-
- _, err = os.Stat(filename)
- if os.IsNotExist(err) {
- return versions, nil
- }
-
- data, err := ioutil.ReadFile(filename)
- if err != nil {
- return
- }
-
- err = json.Unmarshal(data, &versions)
- return
- }
-
-
-
-
-
-
-
-
-
- func writeVersions(versions map[string]int, dv map[string]diffVersion) (err error) {
- for slug, diff := range dv {
- versions[slug] = diff.newVersion
- }
-
- rawJSON, err := json.Marshal(versions)
- if err != nil {
- return
- }
-
- indentedJSON, err := indent(rawJSON)
- if err != nil {
- return
- }
-
- filename := *clonePath + "/versions.json"
- return rewriteFile(filename, indentedJSON)
- }
-
-
-
-
-
-
- func commitNewVersions(
- versions map[string]int, dv map[string]diffVersion, worktree *gogit.Worktree,
- ) (err error) {
- if err = writeVersions(versions, dv); err != nil {
- return err
- }
-
- if _, err = worktree.Add("versions.json"); err != nil {
- return err
- }
-
- _, err = worktree.Commit(getCommitMessage(dv), &gogit.CommitOptions{
- Author: &object.Signature{
- Name: "Grafana Dashboard Manager",
- Email: "grafana@cozycloud.cc",
- When: time.Now(),
- },
- })
-
- return
- }
-
-
-
- func getCommitMessage(dv map[string]diffVersion) string {
- message := "Updated dashboards\n"
-
- for slug, diff := range dv {
- message += fmt.Sprintf(
- "%s: %d => %d\n", slug, diff.oldVersion, diff.newVersion,
- )
- }
-
- return message
- }
|