mirror of https://github.com/grafana/grafana
parent
6e802dc94d
commit
ff977331f4
@ -1,95 +0,0 @@ |
|||||||
package main |
|
||||||
|
|
||||||
import ( |
|
||||||
"fmt" |
|
||||||
"io/ioutil" |
|
||||||
"log" |
|
||||||
"os" |
|
||||||
"path/filepath" |
|
||||||
"regexp" |
|
||||||
"strings" |
|
||||||
"time" |
|
||||||
|
|
||||||
"github.com/pkg/errors" |
|
||||||
) |
|
||||||
|
|
||||||
type releaseLocalSources struct { |
|
||||||
path string |
|
||||||
artifactConfigurations []buildArtifact |
|
||||||
} |
|
||||||
|
|
||||||
func (r releaseLocalSources) prepareRelease(baseArchiveURL, whatsNewURL string, releaseNotesURL string, nightly bool) (*release, error) { |
|
||||||
if !nightly { |
|
||||||
return nil, errors.New("Local releases only supported for nightly builds") |
|
||||||
} |
|
||||||
buildData := r.findBuilds(baseArchiveURL) |
|
||||||
|
|
||||||
rel := release{ |
|
||||||
Version: buildData.version, |
|
||||||
ReleaseDate: time.Now().UTC(), |
|
||||||
Stable: false, |
|
||||||
Beta: false, |
|
||||||
Nightly: nightly, |
|
||||||
WhatsNewURL: whatsNewURL, |
|
||||||
ReleaseNotesURL: releaseNotesURL, |
|
||||||
Builds: buildData.builds, |
|
||||||
} |
|
||||||
|
|
||||||
return &rel, nil |
|
||||||
} |
|
||||||
|
|
||||||
type buildData struct { |
|
||||||
version string |
|
||||||
builds []build |
|
||||||
} |
|
||||||
|
|
||||||
func (r releaseLocalSources) findBuilds(baseArchiveURL string) buildData { |
|
||||||
data := buildData{} |
|
||||||
filepath.Walk(r.path, createBuildWalker(r.path, &data, r.artifactConfigurations, baseArchiveURL)) |
|
||||||
return data |
|
||||||
} |
|
||||||
|
|
||||||
func createBuildWalker(path string, data *buildData, archiveTypes []buildArtifact, baseArchiveURL string) func(path string, f os.FileInfo, err error) error { |
|
||||||
return func(path string, f os.FileInfo, err error) error { |
|
||||||
if err != nil { |
|
||||||
log.Printf("error: %v", err) |
|
||||||
} |
|
||||||
|
|
||||||
if f.Name() == path || strings.HasSuffix(f.Name(), ".sha256") { |
|
||||||
return nil |
|
||||||
} |
|
||||||
|
|
||||||
for _, archive := range archiveTypes { |
|
||||||
if strings.HasSuffix(f.Name(), archive.urlPostfix) { |
|
||||||
shaBytes, err := ioutil.ReadFile(path + ".sha256") |
|
||||||
if err != nil { |
|
||||||
log.Fatalf("Failed to read sha256 file %v", err) |
|
||||||
} |
|
||||||
|
|
||||||
version, err := grabVersion(f.Name(), archive.urlPostfix) |
|
||||||
if err != nil { |
|
||||||
log.Println(err) |
|
||||||
continue |
|
||||||
} |
|
||||||
data.version = version |
|
||||||
data.builds = append(data.builds, build{ |
|
||||||
Os: archive.os, |
|
||||||
URL: archive.getURL(baseArchiveURL, version, NIGHTLY), |
|
||||||
Sha256: string(shaBytes), |
|
||||||
Arch: archive.arch, |
|
||||||
}) |
|
||||||
return nil |
|
||||||
} |
|
||||||
} |
|
||||||
return nil |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
func grabVersion(name string, suffix string) (string, error) { |
|
||||||
match := regexp.MustCompile(fmt.Sprintf(`grafana(-enterprise)?[-_](.*)%s`, suffix)).FindSubmatch([]byte(name)) |
|
||||||
if len(match) > 0 { |
|
||||||
return string(match[2]), nil |
|
||||||
} |
|
||||||
|
|
||||||
return "", errors.New("No version found") |
|
||||||
} |
|
Loading…
Reference in new issue