Version online

This commit is contained in:
admju
2024-09-04 15:32:18 +00:00
parent 48301bf82e
commit a7a5465a22
9 changed files with 311 additions and 116 deletions

View File

@@ -1,89 +1,30 @@
// 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
}
// Package :
package versionOc
import (
"os"
"io"
"gopkg.in/yaml.v2"
)
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
}