fix: env concat #37
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user