oc-deploy/src/versionOc/versionOc.go

77 lines
1.5 KiB
Go
Raw Normal View History

2024-09-02 09:09:46 +02:00
// Package :
package versionOc
import (
"fmt"
"os"
"errors"
"io/ioutil"
"gopkg.in/yaml.v2"
log "oc-deploy/log_wrapper"
)
type versionInput struct {
Version string `yaml:"version"`
}
2024-09-02 13:43:11 +02:00
func GetFromFile(fileversion string) (string, error) {
fin, err := os.Open(fileversion)
if err != nil {
return "", err
}
defer fin.Close()
byteValue, err := ioutil.ReadAll(fin)
if err != nil {
return "", err
}
var objmap versionInput
yaml.Unmarshal(byteValue, &objmap)
return objmap.Version, nil
}
2024-09-02 09:09:46 +02:00
// 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 := ioutil.ReadAll(fin)
if err != nil {
return "", err
}
2024-09-02 13:43:11 +02:00
var objmap versionInput
2024-09-02 09:09:46 +02:00
2024-09-02 13:43:11 +02:00
yaml.Unmarshal(byteValue, &objmap)
2024-09-02 09:09:46 +02:00
return objmap.Version, nil
}