58 lines
1.1 KiB
Go
58 lines
1.1 KiB
Go
|
// 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"`
|
||
|
}
|
||
|
|
||
|
// 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
|
||
|
}
|
||
|
|
||
|
var objmap versionInput
|
||
|
|
||
|
yaml.Unmarshal(byteValue, &objmap)
|
||
|
|
||
|
return objmap.Version, nil
|
||
|
}
|