获取具体的Linux发行版

dev
truthhun 1 year ago
parent d1c94e91af
commit 9c648b8374

@ -163,6 +163,7 @@ func (s *ConfigAPIService) GetStats(ctx context.Context, req *emptypb.Empty) (re
Hash: util.Hash,
BuildAt: util.BuildAt,
}
res.Os, _ = util.GetOSRelease()
res.UserCount, _ = s.dbModel.CountUser()
res.DocumentCount, _ = s.dbModel.CountDocument()
_, errPermission := s.checkPermission(ctx)

@ -10,6 +10,7 @@ import (
"os/exec"
"path/filepath"
"regexp"
"runtime"
"strings"
"github.com/disintegration/imaging"
@ -180,3 +181,32 @@ func CheckCommandExists(command string) error {
_, err := exec.LookPath(command)
return err
}
// 获取系统发行版本信息
func GetOSRelease() (osVersion string, err error) {
var (
content []byte
name, version string
)
osVersion = runtime.GOOS // 默认为GOOS
switch runtime.GOOS {
case "linux":
content, err = os.ReadFile("/etc/os-release")
if err != nil {
return
}
lines := strings.Split(string(content), "\n")
for _, line := range lines {
if strings.HasPrefix(line, "NAME=") {
name = strings.Trim(strings.TrimPrefix(line, "NAME="), "\"")
}
if strings.HasPrefix(line, "VERSION_ID=") {
version = strings.Trim(strings.TrimPrefix(line, "VERSION_ID="), "\"")
}
}
if name != "" {
osVersion = name + " " + version
}
}
return
}

Loading…
Cancel
Save