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)