Skip to content

Commit ad612cb

Browse files
committed
feat: comprehensive system improvements - API server enhancements, command execution optimization, script management, build system improvements, security enhancements
1 parent f9bd754 commit ad612cb

File tree

18 files changed

+3136
-480
lines changed

18 files changed

+3136
-480
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
__debug_bin*
55
bin/
66
coverage.out
7+
*.log

Makefile

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ run: build-local
8989
.PHONY: coverage
9090
coverage: test
9191
@echo "Generating coverage report..."
92-
@go tool cover -html=coverage.out
92+
@go tool cover -html=log/coverage.out
9393

9494
# 代码格式化
9595
.PHONY: fmt
@@ -139,4 +139,20 @@ examples:
139139

140140
# 运行所有测试和示例
141141
test-all: test examples
142-
@echo "All tests and examples completed successfully!"
142+
@echo "All tests and examples completed successfully!"
143+
144+
.PHONY: swagger
145+
swagger: ## Generate Swagger documentation
146+
@echo "Generating Swagger documentation..."
147+
@which swag >/dev/null || (echo "Installing swag..." && go install github.com/swaggo/swag/cmd/swag@latest)
148+
@swag init -g pkg/server/server.go -o cmd/runshell/docs --parseDependency
149+
150+
.PHONY: swagger-serve
151+
swagger-serve: swagger ## Start the server with Swagger documentation
152+
@echo "Starting server with Swagger documentation..."
153+
@go run ./cmd/runshell/main.go server --addr :7070 --executor-type local
154+
155+
.PHONY: swagger-validate
156+
swagger-validate: swagger ## Validate Swagger documentation
157+
@echo "Validating Swagger documentation..."
158+
@./script/api_test.sh

cmd/runshell/cmd/server.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,10 @@ import (
1515
)
1616

1717
var (
18-
serverAddr string
19-
auditDir string
20-
dockerImage string
18+
serverAddr string
19+
auditDir string
20+
dockerImage string
21+
executorType string
2122
)
2223

2324
var serverCmd = &cobra.Command{
@@ -26,7 +27,7 @@ var serverCmd = &cobra.Command{
2627
Long: `Start the HTTP server to handle command execution requests.`,
2728
RunE: func(cmd *cobra.Command, args []string) error {
2829
// 创建执行器构建器
29-
execBuilder, err := createExecutorBuilder(dockerImage)
30+
execBuilder, err := createExecutorBuilder(executorType)
3031
if err != nil {
3132
return fmt.Errorf("failed to create executor builder: %w", err)
3233
}
@@ -59,6 +60,8 @@ var serverCmd = &cobra.Command{
5960
return fmt.Errorf("failed to start server: %w", err)
6061
}
6162

63+
fmt.Printf("Server started on %s\n", serverAddr)
64+
6265
// 等待中断信号
6366
sigCh := make(chan os.Signal, 1)
6467
signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM)
@@ -78,14 +81,18 @@ func init() {
7881
serverCmd.Flags().StringVar(&serverAddr, "addr", ":8080", "Server address")
7982
serverCmd.Flags().StringVar(&auditDir, "audit-dir", "", "Directory for audit logs")
8083
serverCmd.Flags().StringVar(&dockerImage, "docker-image", "", "Docker image to use")
84+
serverCmd.Flags().StringVar(&executorType, "executor-type", "local", "Type of executor to use (local or docker)")
8185
}
8286

8387
// createExecutorBuilder 创建执行器构建器
8488
func createExecutorBuilder(execType string) (types.ExecutorBuilder, error) {
8589
switch execType {
8690
case "docker":
91+
if dockerImage == "" {
92+
dockerImage = "ubuntu:latest"
93+
}
8794
return executor.NewDockerExecutorBuilder(types.DockerConfig{
88-
Image: "ubuntu:latest",
95+
Image: dockerImage,
8996
WorkDir: "/workspace",
9097
AllowUnregisteredCommands: true,
9198
}).WithOptions(nil), nil

0 commit comments

Comments
 (0)