// Package : package versionOc import ( "fmt" "os" "errors" "io" "gopkg.in/yaml.v2" log "oc-deploy/log_wrapper" ) type versionInput struct { Version string `yaml:"version"` } func GetFromFile(fileversion string) (string, error) { fin, err := os.Open(fileversion) if err != nil { return "", err } defer fin.Close() byteValue, err := io.ReadAll(fin) if err != nil { return "", err } var objmap versionInput yaml.Unmarshal(byteValue, &objmap) return objmap.Version, nil } // Get : Retourne la version func Get(version string) (string, error) { version2 := version if version == "latest" { versionLatest, err := readLatestFile() if err != nil { return "", err } version2 = versionLatest } src := fmt.Sprintf("../offline/oc_%s.yml", version2) if _, err := os.Stat(src); err != nil { log.Log().Debug().Msg(err.Error()) return "", errors.New("Version non disponible") } return version2, nil } // readLatestFile : Lit le numéro de la version dans le fichier lastest.yml func readLatestFile() (string, error) { src := "../offline/latest.yml" fin, err := os.Open(src) if err != nil { return "", err } defer fin.Close() byteValue, err := io.ReadAll(fin) if err != nil { return "", err } var objmap versionInput yaml.Unmarshal(byteValue, &objmap) return objmap.Version, nil }