Files
work_cation/version/version.go
T
2024-09-09 20:29:21 +08:00

119 lines
2.0 KiB
Go

package version
import (
"bufio"
"fmt"
"net/http"
"os"
"strconv"
"strings"
)
type Version struct {
Big int
Small int
Debug int
}
const (
versionPath = "http://192.168.5.35:6801/share/%E8%8B%8F%E9%80%9A/work_cation_v.txt"
defaultVersion = "0.0.0"
versionSave = "version.txt"
)
var NowVersion = "0.0.0"
var NewVersion = "0.0.0"
func init() {
var err error
NowVersion, err = GetFile(versionSave)
if err != nil {
WriteFile(versionSave, defaultVersion)
NowVersion = defaultVersion
}
NewVersion, err = GetNewVersion(versionPath)
if err != nil {
return
}
newV, err := PauseVersion(NewVersion)
if err != nil {
return
}
nowV, err := PauseVersion(NowVersion)
if err != nil {
return
}
fmt.Print("版本", newV, nowV)
}
func GetNewVersion(path string) (string, error) {
return GetUrl(path)
}
func GetOldVersion(path string) (string, error) {
return GetFile(path)
}
func PauseVersion(varsionStr string) (Version, error) {
varSplit := strings.Split(varsionStr, ".")
big, err := strconv.Atoi(varSplit[0])
if err != nil {
return Version{}, err
}
small, err := strconv.Atoi(varSplit[1])
if err != nil {
return Version{}, err
}
debug, err := strconv.Atoi(varSplit[2])
if err != nil {
return Version{}, err
}
version := Version{
Big: big,
Small: small,
Debug: debug,
}
return version, nil
}
func GetUrl(url string) (string, error) {
resp, err := http.Get(url)
if err != nil {
return "", err
}
defer resp.Body.Close()
sc := bufio.NewScanner(resp.Body)
var result string
for sc.Scan() {
result += sc.Text()
}
return result, nil
}
func GetFile(path string) (string, error) {
file, err := os.Open(path)
if err != nil {
return "", err
}
defer file.Close()
sc := bufio.NewScanner(file)
var result string
for sc.Scan() {
result += sc.Text()
}
return result, nil
}
func WriteFile(path, context string) {
file, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
return
}
defer file.Close()
file.WriteString(context)
}