wheelchairy bb704c4705 mehh
2025-02-04 18:45:52 +03:00

43 lines
937 B
Go

package version
import (
"encoding/json"
"io/ioutil"
"os"
"path/filepath"
"train/pkg/paths"
)
type VersionInfo struct {
Package string `json:"package"`
Version string `json:"version"`
}
var versionDir = filepath.Join(paths.BaseDir(), "versions")
func SaveVersionInfo(pkgName, ver string) error {
if err := os.MkdirAll(versionDir, os.ModePerm); err != nil {
return err
}
info := VersionInfo{Package: pkgName, Version: ver}
data, err := json.MarshalIndent(info, "", " ")
if err != nil {
return err
}
filePath := filepath.Join(versionDir, pkgName+".json")
return ioutil.WriteFile(filePath, data, 0644)
}
func GetVersionInfo(pkgName string) (*VersionInfo, error) {
filePath := filepath.Join(versionDir, pkgName+".json")
data, err := ioutil.ReadFile(filePath)
if err != nil {
return nil, err
}
var info VersionInfo
if err := json.Unmarshal(data, &info); err != nil {
return nil, err
}
return &info, nil
}