瀏覽代碼

修复问题

moki 2 周之前
父節點
當前提交
91a49e64fc
共有 4 個文件被更改,包括 20 次插入10 次删除
  1. 1 1
      Makefile
  2. 6 2
      internal/database/database.go
  3. 5 2
      internal/discovery/discovery.go
  4. 8 5
      scripts/build.sh

+ 1 - 1
Makefile

@@ -2,7 +2,7 @@
 
 BINARY_NAME=opencode-monitor
 VERSION=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
-GO=/home/moki/.go/sdk/go1.25.5/bin/go
+GO?=go
 
 build:
 	$(GO) mod tidy

+ 6 - 2
internal/database/database.go

@@ -13,6 +13,7 @@ import (
 )
 
 type DB struct {
+	db   *sql.DB
 	conn *sql.Conn
 }
 
@@ -45,7 +46,7 @@ func New(dbPath string) (*DB, error) {
 		return nil, fmt.Errorf("获取连接失败: %w", err)
 	}
 
-	d := &DB{conn: conn}
+	d := &DB{db: db, conn: conn}
 	if err := d.init(); err != nil {
 		logger.Error("初始化数据库失败: %v", err)
 		return nil, err
@@ -148,5 +149,8 @@ func (d *DB) ListMQTTConfigs() ([]MQTTConfig, error) {
 
 func (d *DB) Close() error {
 	logger.Debug("数据库连接已关闭")
-	return d.conn.Close()
+	if err := d.conn.Close(); err != nil {
+		return err
+	}
+	return d.db.Close()
 }

+ 5 - 2
internal/discovery/discovery.go

@@ -51,10 +51,13 @@ func scanPorts(host string, startPort, endPort int) []int {
 
 	for port := startPort; port <= endPort; port++ {
 		resp, err := client.Get(fmt.Sprintf("http://%s:%d/global/health", host, port))
-		if err == nil && resp.StatusCode == 200 {
+		if err != nil {
+			continue
+		}
+		resp.Body.Close()
+		if resp.StatusCode == 200 {
 			logger.Debug("端口扫描发现实例: %d", port)
 			found = append(found, port)
-			resp.Body.Close()
 		}
 	}
 

+ 8 - 5
scripts/build.sh

@@ -2,11 +2,14 @@
 
 set -e
 
-# 构建前端
-WEB_DIR="/home/moki/Project/ai-status-light-web"
-HTML_DIR="/home/moki/GolandProjects/AI-Status-Light/internal/web/html"
+SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
+PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
 
-if [ -d "$WEB_DIR" ]; then
+# 构建前端(可选,需配置 WEB_DIR 环境变量指向前端项目目录)
+WEB_DIR="${WEB_DIR:-}"
+HTML_DIR="$PROJECT_DIR/internal/web/html"
+
+if [ -n "$WEB_DIR" ] && [ -d "$WEB_DIR" ]; then
     echo "Building frontend..."
     cd "$WEB_DIR" && npm run build
     rm -rf "$HTML_DIR"
@@ -14,7 +17,7 @@ if [ -d "$WEB_DIR" ]; then
     echo "Frontend built and copied."
 fi
 
-cd /home/moki/GolandProjects/AI-Status-Light
+cd "$PROJECT_DIR"
 
 BINARY_NAME="opencode-monitor"
 VERSION=$(git describe --tags --always --dirty 2>/dev/null || echo "dev")