Skip to content

Commit e4df4b7

Browse files
committed
fix
1 parent b38916e commit e4df4b7

File tree

9 files changed

+58
-96
lines changed

9 files changed

+58
-96
lines changed
-19.6 MB
Binary file not shown.

embedding/embed_darwin_amd64.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
//go:build darwin && amd64
2-
// +build darwin,amd64
32

43
package embedding
54

@@ -15,7 +14,7 @@ var ecsBinary []byte
1514

1615
func getECSBinary() ([]byte, error) {
1716
if len(ecsBinary) == 0 {
18-
return nil, fmt.Errorf("macOS AMD64 二进制文件未嵌入")
17+
return nil, fmt.Errorf("Darwin AMD64 二进制文件未嵌入")
1918
}
2019
return ecsBinary, nil
2120
}

embedding/embed_darwin_arm64.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
//go:build darwin && arm64
2-
// +build darwin,arm64
32

43
package embedding
54

@@ -15,7 +14,7 @@ var ecsBinary []byte
1514

1615
func getECSBinary() ([]byte, error) {
1716
if len(ecsBinary) == 0 {
18-
return nil, fmt.Errorf("macOS ARM64 二进制文件未嵌入")
17+
return nil, fmt.Errorf("Darwin ARM64 二进制文件未嵌入")
1918
}
2019
return ecsBinary, nil
2120
}

embedding/embed_linux_amd64.go

Lines changed: 0 additions & 42 deletions
This file was deleted.

embedding/embed_linux_arm64.go

Lines changed: 0 additions & 42 deletions
This file was deleted.

embedding/embed_universal.go

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
//go:build !windows && !darwin
2+
3+
package embedding
4+
5+
import (
6+
_ "embed"
7+
"fmt"
8+
"os"
9+
"path/filepath"
10+
"runtime"
11+
)
12+
13+
//go:embed binaries/goecs-linux-arm64
14+
var ecsBinaryARM64 []byte
15+
16+
//go:embed binaries/goecs-linux-amd64
17+
var ecsBinaryAMD64 []byte
18+
19+
func getECSBinary() ([]byte, error) {
20+
switch runtime.GOARCH {
21+
case "arm64":
22+
if len(ecsBinaryARM64) == 0 {
23+
return nil, fmt.Errorf("ARM64 二进制文件未嵌入 (GOOS=%s, GOARCH=%s)", runtime.GOOS, runtime.GOARCH)
24+
}
25+
return ecsBinaryARM64, nil
26+
case "amd64":
27+
if len(ecsBinaryAMD64) == 0 {
28+
return nil, fmt.Errorf("AMD64 二进制文件未嵌入 (GOOS=%s, GOARCH=%s)", runtime.GOOS, runtime.GOARCH)
29+
}
30+
return ecsBinaryAMD64, nil
31+
default:
32+
return nil, fmt.Errorf("不支持的架构: %s (GOOS=%s)", runtime.GOARCH, runtime.GOOS)
33+
}
34+
}
35+
36+
func ExtractECSBinary() (string, error) {
37+
binary, err := getECSBinary()
38+
if err != nil {
39+
return "", err
40+
}
41+
42+
tmpDir := os.TempDir()
43+
ecsPath := filepath.Join(tmpDir, "goecs")
44+
45+
if err := os.WriteFile(ecsPath, binary, 0755); err != nil {
46+
return "", fmt.Errorf("写入二进制文件失败: %v", err)
47+
}
48+
49+
return ecsPath, nil
50+
}
51+
52+
func CleanupECSBinary(path string) {
53+
if path != "" {
54+
os.Remove(path)
55+
}
56+
}

embedding/embed_windows_amd64.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
//go:build windows && amd64
2-
// +build windows,amd64
32

43
package embedding
54

embedding/embed_windows_arm64.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
//go:build windows && arm64
2-
// +build windows,arm64
32

43
package embedding
54

embedding/embedding.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
11
package embedding
22

3-
// GetECSBinaryPath 提取并返回嵌入的 ECS 二进制文件路径
4-
// 这个函数会根据不同平台调用相应的实现
5-
func GetECSBinaryPath() (string, error) {
6-
return ExtractECSBinary()
7-
}
8-
93
// Cleanup 清理提取的二进制文件
104
func Cleanup(path string) {
115
CleanupECSBinary(path)

0 commit comments

Comments
 (0)