119 lines
2.0 KiB
Go
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)
|
|
|
|
}
|