sharedutils/redistruable/javaentities/java.go

114 lines
2.3 KiB
Go
Raw Normal View History

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)