mirror of
https://github.com/IceWhaleTech/CasaOS.git
synced 2025-06-16 05:55:33 +00:00
80 lines
2.3 KiB
Go
80 lines
2.3 KiB
Go
package service
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
|
|
"github.com/IceWhaleTech/CasaOS/pkg/config"
|
|
command2 "github.com/IceWhaleTech/CasaOS/pkg/utils/command"
|
|
"github.com/IceWhaleTech/CasaOS/pkg/utils/file"
|
|
"github.com/IceWhaleTech/CasaOS/pkg/utils/loger"
|
|
)
|
|
|
|
type SystemService interface {
|
|
UpSystemConfig(str string, widget string)
|
|
UpdateSystemVersion(version string)
|
|
GetSystemConfigDebug() []string
|
|
GetCasaOSLogs(lineNumber int) string
|
|
}
|
|
type systemService struct {
|
|
log loger.OLog
|
|
}
|
|
|
|
func (s *systemService) UpdateSystemVersion(version string) {
|
|
//command2.OnlyExec(config.AppInfo.ProjectPath + "/shell/tool.sh -r " + version)
|
|
//s.log.Error(config.AppInfo.ProjectPath + "/shell/tool.sh -r " + version)
|
|
s.log.Error(command2.ExecResultStrArray("source " + config.AppInfo.ProjectPath + "/shell/tools.sh ;update " + version))
|
|
//s.log.Error(command2.ExecResultStr(config.AppInfo.ProjectPath + "/shell/tool.sh -r " + version))
|
|
}
|
|
func (s *systemService) GetSystemConfigDebug() []string {
|
|
return command2.ExecResultStrArray("source " + config.AppInfo.ProjectPath + "/shell/helper.sh ;GetSysInfo")
|
|
}
|
|
func (s *systemService) UpSystemConfig(str string, widget string) {
|
|
if len(str) > 0 && str != config.SystemConfigInfo.ConfigStr {
|
|
config.Cfg.Section("system").Key("ConfigStr").SetValue(str)
|
|
config.SystemConfigInfo.ConfigStr = str
|
|
}
|
|
if len(widget) > 0 && widget != config.SystemConfigInfo.WidgetList {
|
|
config.Cfg.Section("system").Key("WidgetList").SetValue(widget)
|
|
config.SystemConfigInfo.WidgetList = widget
|
|
}
|
|
config.Cfg.SaveTo("conf/conf.ini")
|
|
}
|
|
|
|
func (s *systemService) GetCasaOSLogs(lineNumber int) string {
|
|
|
|
reader, err := file.NewReadLineFromEnd(s.log.Path())
|
|
if err != nil {
|
|
return ""
|
|
}
|
|
defer reader.Close()
|
|
test, err := reader.ReadLine()
|
|
|
|
fmt.Println(err)
|
|
fmt.Println(test)
|
|
return string(test)
|
|
file, _ := os.Open(s.log.Path())
|
|
fileScanner := bufio.NewReader(file)
|
|
lineNumber = 5
|
|
lineCount := 1
|
|
var r string
|
|
for i := lineCount; i < lineNumber; i++ {
|
|
line, _, err := fileScanner.ReadLine()
|
|
r += string(line)
|
|
if err == io.EOF {
|
|
return r
|
|
}
|
|
// 如下是某些业务逻辑操作
|
|
// 如下代码打印每次读取的文件行内容
|
|
|
|
}
|
|
defer file.Close()
|
|
return r
|
|
}
|
|
|
|
func NewSystemService(log loger.OLog) SystemService {
|
|
return &systemService{log: log}
|
|
}
|