114 lines
2.3 KiB
Go
114 lines
2.3 KiB
Go
package javaentities
|
|
|
|
import (
|
|
"errors"
|
|
"os"
|
|
"path"
|
|
"runtime"
|
|
"strconv"
|
|
"strings"
|
|
<<<<<<< HEAD
|
|
=======
|
|
|
|
"git.gregbrzezinski.com/Skirda/skirdaGoLauncher/api"
|
|
"git.gregbrzezinski.com/Skirda/skirdaGoLauncher/downloader"
|
|
>>>>>>> 7b3396a (Add java entities)
|
|
)
|
|
|
|
type JavaVersion struct {
|
|
Major int
|
|
Minor int
|
|
Patch int
|
|
}
|
|
|
|
type JavaMetas struct {
|
|
JavaVersions []JavaMeta `json:"javaVersions"`
|
|
}
|
|
|
|
<<<<<<< HEAD
|
|
func (jm JavaMetas) GetOsURL() (string, error) {
|
|
|
|
}
|
|
|
|
=======
|
|
>>>>>>> 7b3396a (Add java entities)
|
|
type JavaMeta struct {
|
|
Version struct {
|
|
Major string `json:"major"`
|
|
Minor string `json:"minor"`
|
|
Patch string `json:"patch"`
|
|
} `json:"version"`
|
|
Specifics `json:"specifics"`
|
|
}
|
|
|
|
type SpecificJavaVersion struct {
|
|
Os string `json:"os"`
|
|
Arch string `json:"arch"`
|
|
URL string `json:"URL"`
|
|
Sha1 string `json:"SHA1"`
|
|
}
|
|
|
|
type Specifics []SpecificJavaVersion
|
|
|
|
func (s Specifics) getOsJava() (SpecificJavaVersion, error) {
|
|
for _, v := range s {
|
|
if v.Os == runtime.GOOS {
|
|
return v, nil
|
|
}
|
|
}
|
|
return SpecificJavaVersion{}, errors.New("not java for current os")
|
|
}
|
|
|
|
func (v *JavaVersion) CheckNotExists(launcherPath string) bool {
|
|
<<<<<<< HEAD
|
|
=======
|
|
|
|
>>>>>>> 7b3396a (Add java entities)
|
|
javaBinPath := path.Join(launcherPath, ".redist", "java", v.GetString())
|
|
_, err := os.Stat(javaBinPath)
|
|
|
|
return err != nil
|
|
}
|
|
|
|
func (v *JavaVersion) GetString() string {
|
|
var stringBuilder strings.Builder
|
|
stringBuilder.WriteString(strconv.Itoa(v.Major))
|
|
stringBuilder.WriteRune('.')
|
|
stringBuilder.WriteString(strconv.Itoa(v.Minor))
|
|
stringBuilder.WriteRune('.')
|
|
stringBuilder.WriteString(strconv.Itoa(v.Patch))
|
|
|
|
return stringBuilder.String()
|
|
}
|
|
<<<<<<< HEAD
|
|
=======
|
|
|
|
func (v *JavaVersion) DownloadLatest(downloadDir string) (downloader.DownloadFile, error) {
|
|
javaVersionMeta := JavaMetas{}
|
|
task := downloader.DownloadFile{
|
|
Url: "",
|
|
Path: "",
|
|
}
|
|
|
|
javaVersionMeta, err := api.GetJavaVersionMetas()
|
|
|
|
// if err := downloadJson("https://skirda.gregbrzezinski.com/java_version_manifest.json", &javaVersionMeta); err != nil {
|
|
// return task, errors.New("error in download json")
|
|
// }
|
|
|
|
// javaSpecific := SpecificJavaVersion{}
|
|
|
|
javaSpecific, err := javaVersionMeta.getOsJava()
|
|
if err != nil {
|
|
return task, err
|
|
}
|
|
|
|
task = downloader.DownloadFile{
|
|
Url: javaSpecific.URL,
|
|
Path: path.Join(downloadDir, v.GetString()),
|
|
}
|
|
|
|
return task, nil
|
|
}
|
|
>>>>>>> 7b3396a (Add java entities)
|