moki 2 тижнів тому
батько
коміт
77c0ef0b9c
4 змінених файлів з 3 додано та 160 видалено
  1. 2 10
      Makefile
  2. 1 3
      README.md
  3. 0 141
      internal/discovery/discovery_darwin.go
  4. 0 6
      scripts/build.sh

+ 2 - 10
Makefile

@@ -1,4 +1,4 @@
-.PHONY: build clean tidy run serve build-all build-linux build-darwin build-windows
+.PHONY: build clean tidy run serve build-all build-linux build-windows
 
 BINARY_NAME=opencode-monitor
 VERSION=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
@@ -29,7 +29,7 @@ config-list: build
 config-set: build
 	./bin/$(BINARY_NAME) config set --broker tcp://127.0.0.1:1883
 
-build-all: build-linux build-darwin build-windows
+build-all: build-linux build-windows
 
 build-linux:
 	@echo "Building for Linux..."
@@ -37,12 +37,6 @@ build-linux:
 	GOOS=linux GOARCH=amd64 $(GO) build -ldflags "-X main.Version=$(VERSION)" -o dist/$(BINARY_NAME)-linux-amd64 ./cmd/monitor
 	GOOS=linux GOARCH=arm64 $(GO) build -ldflags "-X main.Version=$(VERSION)" -o dist/$(BINARY_NAME)-linux-arm64 ./cmd/monitor
 
-build-darwin:
-	@echo "Building for macOS..."
-	@mkdir -p dist
-	GOOS=darwin GOARCH=amd64 $(GO) build -ldflags "-X main.Version=$(VERSION)" -o dist/$(BINARY_NAME)-darwin-amd64 ./cmd/monitor
-	GOOS=darwin GOARCH=arm64 $(GO) build -ldflags "-X main.Version=$(VERSION)" -o dist/$(BINARY_NAME)-darwin-arm64 ./cmd/monitor
-
 build-windows:
 	@echo "Building for Windows..."
 	@mkdir -p dist
@@ -53,8 +47,6 @@ release: build-all
 	@echo "Creating release archives..."
 	@cd dist && tar -czf $(BINARY_NAME)-linux-amd64.tar.gz $(BINARY_NAME)-linux-amd64
 	@cd dist && tar -czf $(BINARY_NAME)-linux-arm64.tar.gz $(BINARY_NAME)-linux-arm64
-	@cd dist && tar -czf $(BINARY_NAME)-darwin-amd64.tar.gz $(BINARY_NAME)-darwin-amd64
-	@cd dist && tar -czf $(BINARY_NAME)-darwin-arm64.tar.gz $(BINARY_NAME)-darwin-arm64
 	@cd dist && zip -q $(BINARY_NAME)-windows-amd64.zip $(BINARY_NAME)-windows-amd64.exe
 	@cd dist && zip -q $(BINARY_NAME)-windows-arm64.zip $(BINARY_NAME)-windows-arm64.exe
 	@echo "Release archives created in dist/"

+ 1 - 3
README.md

@@ -10,7 +10,7 @@ OpenCode 状态监控工具,支持实时监控多个 OpenCode 实例的状态
 - 💾 **配置管理** - 使用 SQLite 存储 MQTT 配置
 - 🌐 **HTTP API** - 提供 RESTful API 接口管理配置(详见 [API 文档](docs/api.md))
 - 🔌 **WebSocket** - 支持通过 WebSocket 实时推送状态到网页(详见 [API 文档](docs/api.md))
-- 🖥️ **跨平台** - 支持 Linux、macOS、Windows
+- 🖥️ **跨平台** - 支持 Linux、Windows
 
 ## 安装
 
@@ -20,8 +20,6 @@ OpenCode 状态监控工具,支持实时监控多个 OpenCode 实例的状态
 
 - `opencode-monitor-linux-amd64` - Linux x86_64
 - `opencode-monitor-linux-arm64` - Linux ARM64
-- `opencode-monitor-darwin-amd64` - macOS Intel
-- `opencode-monitor-darwin-arm64` - macOS Apple Silicon
 - `opencode-monitor-windows-amd64.exe` - Windows x86_64
 - `opencode-monitor-windows-arm64.exe` - Windows ARM64
 

+ 0 - 141
internal/discovery/discovery_darwin.go

@@ -1,141 +0,0 @@
-//go:build darwin
-
-package discovery
-
-import (
-	"os/exec"
-	"regexp"
-	"sort"
-	"strconv"
-	"strings"
-)
-
-func findByPID() []int {
-	var ports []int
-	pidRegex := regexp.MustCompile(`\bopencode\b`)
-
-	out, err := exec.Command("ps", "aux").Output()
-	if err != nil {
-		return ports
-	}
-
-	var pids []int
-	for _, line := range strings.Split(string(out), "\n") {
-		if pidRegex.MatchString(line) && !strings.Contains(line, "opencode-monitor") && !strings.Contains(line, "grep") {
-			fields := strings.Fields(line)
-			if len(fields) > 1 {
-				if pid, err := strconv.Atoi(fields[1]); err == nil {
-					pids = append(pids, pid)
-				}
-			}
-		}
-	}
-
-	for _, pid := range pids {
-		lsofOut, err := exec.Command("lsof", "-p", strconv.Itoa(pid), "-i", "TCP", "-n").Output()
-		if err != nil {
-			continue
-		}
-
-		for _, line := range strings.Split(string(lsofOut), "\n") {
-			if strings.Contains(line, "LISTEN") {
-				fields := strings.Fields(line)
-				for _, f := range fields {
-					if strings.Contains(f, ":") {
-						parts := strings.Split(f, ":")
-						if len(parts) >= 2 {
-							if port, err := strconv.Atoi(parts[len(parts)-1]); err == nil {
-								if !contains(ports, port) {
-									ports = append(ports, port)
-								}
-							}
-						}
-					}
-				}
-			}
-		}
-
-		netstatOut, err := exec.Command("netstat", "-an").Output()
-		if err == nil {
-			for _, line := range strings.Split(string(netstatOut), "\n") {
-				if strings.Contains(line, "LISTEN") {
-					fields := strings.Fields(line)
-					if len(fields) >= 4 {
-						addr := fields[3]
-						if strings.Contains(addr, ":") {
-							parts := strings.Split(addr, ":")
-							if len(parts) >= 2 {
-								if port, err := strconv.Atoi(parts[len(parts)-1]); err == nil {
-									if port > 1024 && port < 65535 && !contains(ports, port) {
-										ports = append(ports, port)
-									}
-								}
-							}
-						}
-					}
-				}
-			}
-		}
-	}
-
-	sort.Ints(ports)
-	return ports
-}
-
-func findByCmdline() []int {
-	var ports []int
-
-	out, err := exec.Command("ps", "aux").Output()
-	if err != nil {
-		return ports
-	}
-
-	for _, line := range strings.Split(string(out), "\n") {
-		if strings.Contains(line, "opencode") && !strings.Contains(line, "opencode-monitor") && !strings.Contains(line, "grep") {
-			if strings.Contains(line, "--port") {
-				fields := strings.Fields(line)
-				for i, f := range fields {
-					if f == "--port" && i+1 < len(fields) {
-						if port, err := strconv.Atoi(fields[i+1]); err == nil {
-							if !contains(ports, port) {
-								ports = append(ports, port)
-							}
-						}
-					}
-				}
-			}
-		}
-	}
-
-	sort.Ints(ports)
-	return ports
-}
-
-func getListeningPorts(pid int) []int {
-	var ports []int
-
-	lsofOut, err := exec.Command("lsof", "-p", strconv.Itoa(pid), "-i", "TCP", "-n", "-P").Output()
-	if err != nil {
-		return ports
-	}
-
-	for _, line := range strings.Split(string(lsofOut), "\n") {
-		if strings.Contains(line, "LISTEN") {
-			fields := strings.Fields(line)
-			for _, f := range fields {
-				if strings.Contains(f, ":") {
-					parts := strings.Split(f, ":")
-					if len(parts) >= 2 {
-						if port, err := strconv.Atoi(parts[len(parts)-1]); err == nil {
-							if !contains(ports, port) {
-								ports = append(ports, port)
-							}
-						}
-					}
-				}
-			}
-		}
-	}
-
-	return ports
-}

+ 0 - 6
scripts/build.sh

@@ -30,12 +30,6 @@ GOOS=linux GOARCH=amd64 go build -ldflags "-X main.Version=${VERSION}" -o dist/$
 echo "Building for Linux (arm64)..."
 GOOS=linux GOARCH=arm64 go build -ldflags "-X main.Version=${VERSION}" -o dist/${BINARY_NAME}-linux-arm64 ./cmd/monitor
 
-echo "Building for macOS (amd64)..."
-GOOS=darwin GOARCH=amd64 go build -ldflags "-X main.Version=${VERSION}" -o dist/${BINARY_NAME}-darwin-amd64 ./cmd/monitor
-
-echo "Building for macOS (arm64)..."
-GOOS=darwin GOARCH=arm64 go build -ldflags "-X main.Version=${VERSION}" -o dist/${BINARY_NAME}-darwin-arm64 ./cmd/monitor
-
 echo "Building for Windows (amd64)..."
 GOOS=windows GOARCH=amd64 go build -ldflags "-X main.Version=${VERSION}" -o dist/${BINARY_NAME}-windows-amd64.exe ./cmd/monitor