You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
1.5 KiB
Go

1 year ago
package collector
import (
"io/ioutil"
"net/http"
"strings"
)
type Collector struct {
Version string
Windows_X64 *Op_Item
Linux_X64 *Op_Item
Linux_AArch64 *Op_Item
Mac_X64 *Op_Item
Mac_AArch64 *Op_Item
}
type Op_Item struct {
FileType string
Arch string
Url string
Sha256Url string
FileName string
}
var Archive_Releases_Collectors []*Collector
var Collectors []*Collector
var Collector_Archive_Url string = Collector_Url + "/archive/"
var Collector_Url string = "https://jdk.java.net"
func build_Op_Item(file_type, arch, download_url, sha256_url, file_name string) *Op_Item {
return &Op_Item{
FileType: file_type,
Arch: arch,
Url: download_url,
Sha256Url: sha256_url,
FileName: file_name,
}
}
func getFileNameByDownLoadUrl(url string) string {
downloads := strings.Split(url, "/")
file_name := downloads[len(downloads)-1]
return file_name
}
func getFileNameNoSuffix(file_name string) string {
return strings.ReplaceAll(file_name, "."+getFileTypeByFileName(file_name), "")
}
func GetSha256ByUrl(url string, isGetSha256 bool) string {
if isGetSha256 {
resp, _ := http.Get(url)
defer resp.Body.Close()
bytes, _ := ioutil.ReadAll(resp.Body)
return string(bytes)
} else {
return url
}
}
func getFileTypeByFileName(filename string) string {
filenames := strings.Split(filename, ".")
switch filenames[len(filenames)-1] {
case "zip":
return "zip"
case "gz":
return "tar.gz"
default:
return filenames[len(filenames)-1]
}
}