Jelajahi Sumber

优化sshd代码,使其能适配rtu_linux_services的服务框架设计

niujiuru 2 minggu lalu
induk
melakukan
b8a4e2d3ed
2 mengubah file dengan 20 tambahan dan 0 penghapusan
  1. 17 0
      baseapp/ver.go
  2. 3 0
      sshd/server/server.go

+ 17 - 0
baseapp/ver.go

@@ -5,6 +5,8 @@ package baseapp
 
 import (
 	"fmt"
+	"os"
+	"path/filepath"
 	"strconv"
 	"strings"
 )
@@ -53,3 +55,18 @@ func (v VersionCode) Major() uint32 { return v.Parts()[0] }
 func (v VersionCode) Minor() uint32 { return v.Parts()[1] }
 func (v VersionCode) Patch() uint32 { return v.Parts()[2] }
 func (v VersionCode) Build() uint32 { return v.Parts()[3] }
+
+func WriteVersionFile(dir, version string) error {
+	file := filepath.Join(dir, "version.txt")
+	tmp := file + ".tmp"
+
+	if err := os.MkdirAll(dir, 0755); err != nil {
+		return err
+	}
+
+	if err := os.WriteFile(tmp, []byte(version+"\n"), 0644); err != nil {
+		return err
+	}
+
+	return os.Rename(tmp, file)
+}

+ 3 - 0
sshd/server/server.go

@@ -52,6 +52,7 @@ func loadCfgServers() error {
 }
 
 func main() {
+	baseapp.SetOptDirs(true, true, false, false)
 	baseapp.InitPath()
 	sshdCfgFile, err := ensureSSHDConfig()
 	if err != nil {
@@ -59,6 +60,8 @@ func main() {
 		os.Exit(1)
 	}
 
+	baseapp.WriteVersionFile(baseapp.EXEC_DIR, Version) //-> for 升级
+
 	baseapp.InitLogger(sshdCfgFile)
 	baseapp.SingleInstanceRun() // 异步非阻塞
 	baseapp.Logger.Infof("程序版本: %s 构建时间: %s\n程序开始运行...",