|
@@ -18,8 +18,15 @@ import (
|
|
|
var apiUrl = flag.String("apiUrl", "https://grafana.com/api", "api url")
|
|
var apiUrl = flag.String("apiUrl", "https://grafana.com/api", "api url")
|
|
|
var apiKey = flag.String("apiKey", "", "api key")
|
|
var apiKey = flag.String("apiKey", "", "api key")
|
|
|
var version = ""
|
|
var version = ""
|
|
|
-var versionRe = regexp.MustCompile(`grafana-(.*)\.(linux|windows)`)
|
|
|
|
|
|
|
+var versionRe = regexp.MustCompile(`grafana-(.*)(\.|_)(arm64|armv7|darwin|linux|windows|x86_64)`)
|
|
|
|
|
+var debVersionRe = regexp.MustCompile(`grafana_(.*)_(arm64|armv7|amd64)\.deb`)
|
|
|
var builds = []build{}
|
|
var builds = []build{}
|
|
|
|
|
+var architectureMapping = map[string]string{
|
|
|
|
|
+ "amd64":"amd64",
|
|
|
|
|
+ "armv7":"armv7",
|
|
|
|
|
+ "arm64":"arm64",
|
|
|
|
|
+ "x86_64":"amd64",
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
func main() {
|
|
func main() {
|
|
|
flag.Parse()
|
|
flag.Parse()
|
|
@@ -60,45 +67,68 @@ func main() {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func packageWalker(path string, f os.FileInfo, err error) error {
|
|
|
|
|
- if f.Name() == "dist" || strings.Contains(f.Name(), "sha256") || strings.Contains(f.Name(), "latest") {
|
|
|
|
|
- return nil
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- log.Printf("Finding package file %s", f.Name())
|
|
|
|
|
- result := versionRe.FindSubmatch([]byte(f.Name()))
|
|
|
|
|
|
|
+func mapPackage(path string, name string, shaBytes []byte) (build, error) {
|
|
|
|
|
+ log.Printf("Finding package file %s", name)
|
|
|
|
|
+ result := versionRe.FindSubmatch([]byte(name))
|
|
|
|
|
+ debResult := debVersionRe.FindSubmatch([]byte(name))
|
|
|
|
|
|
|
|
if len(result) > 0 {
|
|
if len(result) > 0 {
|
|
|
version = string(result[1])
|
|
version = string(result[1])
|
|
|
log.Printf("Version detected: %v", version)
|
|
log.Printf("Version detected: %v", version)
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- shaBytes, err := ioutil.ReadFile(path + ".sha256")
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- log.Fatalf("Failed to read sha256 file %v", err)
|
|
|
|
|
|
|
+ } else if (len(debResult) > 0) {
|
|
|
|
|
+ version = string(debResult[1])
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
os := ""
|
|
os := ""
|
|
|
- if strings.Contains(f.Name(), "linux-x64.tar.gz") {
|
|
|
|
|
|
|
+ if strings.Contains(name, "linux") {
|
|
|
os = "linux"
|
|
os = "linux"
|
|
|
}
|
|
}
|
|
|
- if strings.HasSuffix(f.Name(), "windows-x64.zip") {
|
|
|
|
|
|
|
+ if strings.HasSuffix(name, "windows-amd64.zip") {
|
|
|
os = "win"
|
|
os = "win"
|
|
|
}
|
|
}
|
|
|
- if strings.HasSuffix(f.Name(), ".rpm") {
|
|
|
|
|
|
|
+ if strings.HasSuffix(name, "darwin-amd64.tar.gz") {
|
|
|
|
|
+ os = "darwin"
|
|
|
|
|
+ }
|
|
|
|
|
+ if strings.HasSuffix(name, ".rpm") {
|
|
|
os = "rhel"
|
|
os = "rhel"
|
|
|
}
|
|
}
|
|
|
- if strings.HasSuffix(f.Name(), ".deb") {
|
|
|
|
|
|
|
+ if strings.HasSuffix(name, ".deb") {
|
|
|
os = "deb"
|
|
os = "deb"
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- builds = append(builds, build{
|
|
|
|
|
|
|
+ arch := ""
|
|
|
|
|
+ for archListed, archReal := range architectureMapping {
|
|
|
|
|
+ if strings.Contains(name, archListed) {
|
|
|
|
|
+ arch = archReal
|
|
|
|
|
+ break
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return build{
|
|
|
Os: os,
|
|
Os: os,
|
|
|
- Arch: "amd64",
|
|
|
|
|
- Url: "https://s3-us-west-2.amazonaws.com/grafana-releases/master/" + f.Name(),
|
|
|
|
|
|
|
+ Arch: arch,
|
|
|
|
|
+ Url: "https://s3-us-west-2.amazonaws.com/grafana-releases/master/" + name,
|
|
|
Sha256: string(shaBytes),
|
|
Sha256: string(shaBytes),
|
|
|
- })
|
|
|
|
|
|
|
+ }, nil
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func packageWalker(path string, f os.FileInfo, err error) error {
|
|
|
|
|
+ if f.Name() == "dist" || strings.Contains(f.Name(), "sha256") || strings.Contains(f.Name(), "latest") {
|
|
|
|
|
+ return nil
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ shaBytes, err := ioutil.ReadFile(path + ".sha256")
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ log.Fatalf("Failed to read sha256 file %v", err)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ build, err := mapPackage(path, f.Name(), shaBytes)
|
|
|
|
|
+
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ return err
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ builds = append(builds, build)
|
|
|
return nil
|
|
return nil
|
|
|
}
|
|
}
|
|
|
|
|
|