// Package : package versionOc import ( "fmt" "os" "errors" "io" "path/filepath" "gopkg.in/yaml.v2" log "oc-deploy/log_wrapper" ) type versionInput struct { Version string `yaml:"version"` } var OFFLINE_DIR string = "../offline" 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 err = yaml.Unmarshal(byteValue, &objmap) if err != nil { return "", err } 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 } ficversion := fmt.Sprintf("oc_%s.yml", version2) src := filepath.Join(OFFLINE_DIR, ficversion) 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 := filepath.Join(OFFLINE_DIR, "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 err = yaml.Unmarshal(byteValue, &objmap) if err != nil { return "", err } return objmap.Version, nil }