fix: env concat #37

This commit is contained in:
engigu
2026-03-06 14:27:42 +08:00
parent 711d7473b6
commit 0ee386b63a
2 changed files with 12 additions and 10 deletions
+6 -10
View File
@@ -2,7 +2,6 @@ package controllers
import (
"bufio"
"fmt"
"io"
"net/http"
"os"
@@ -116,11 +115,9 @@ func (tc *TerminalController) handlePtyMode(conn *websocket.Conn, userID string)
cmd.Env = append(cmd.Env, "PATH="+pathStr)
}
// 注入环境变量
envVars := tc.envService.GetEnvVarsByUserID(userID)
for _, env := range envVars {
cmd.Env = append(cmd.Env, fmt.Sprintf("%s=%s", env.Name, env.Value))
}
// 注入环境变量(支持同名合并)
envVars := tc.envService.GetFormattedEnvVarsByUserID(userID)
cmd.Env = append(cmd.Env, envVars...)
ptmx, err := pty.Start(cmd)
if err != nil {
@@ -191,10 +188,9 @@ func (tc *TerminalController) handlePipeMode(conn *websocket.Conn, userID string
cmd.Env = append(cmd.Env, "PATH="+pathStr)
}
envVars := tc.envService.GetEnvVarsByUserID(userID)
for _, env := range envVars {
cmd.Env = append(cmd.Env, fmt.Sprintf("%s=%s", env.Name, env.Value))
}
// 注入环境变量(支持同名合并)
envVars := tc.envService.GetFormattedEnvVarsByUserID(userID)
cmd.Env = append(cmd.Env, envVars...)
stdin, err := cmd.StdinPipe()
if err != nil {
+6
View File
@@ -37,6 +37,12 @@ func (es *EnvService) GetEnvVarsByUserID(userID string) []models.EnvironmentVari
return envs
}
// GetFormattedEnvVarsByUserID 获取用户环境变量并格式化为 NAME=VALUE 格式(支持重名合并)
func (es *EnvService) GetFormattedEnvVarsByUserID(userID string) []string {
envs := es.GetEnvVarsByUserID(userID)
return es.formatEnvVars(envs)
}
func (es *EnvService) GetEnvVarsWithPagination(userID string, name string, page, pageSize int) ([]models.EnvironmentVariable, int64) {
var envs []models.EnvironmentVariable
var total int64