This commit is contained in:
init
2025-09-18 18:37:42 +08:00
repo.diff.parent a039f17913
repo.diff.commit 83085dc2d0
repo.diff.stats_desc%!(EXTRA int=2, int=30, int=1)

repo.diff.view_file

@@ -84,6 +84,10 @@ func GetDevContainerDetails(ctx *context.Context) {
if webTerminalContainerName == "" {
ctx.Flash.Error("webTerminal do not exist.", true)
} else {
rootPort, err := devcontainer_service.GetPortFromURL(cfg.Section("server").Key("ROOT_URL").Value())
if err != nil {
ctx.Flash.Error(err.Error(), true)
}
terminalParams := "user=" +
ctx.Doer.Name +
"&repo=" +
@@ -95,7 +99,8 @@ func GetDevContainerDetails(ctx *context.Context) {
"&domain=" +
cfg.Section("server").Key("DOMAIN").Value() +
"&port=" +
cfg.Section("server").Key("HTTP_PORT").Value()
rootPort
port, err := devcontainer_service.GetMappedPort(ctx, webTerminalContainerName, "7681")
webTerminalURL, err := devcontainer_service.ReplacePortOfUrl(cfg.Section("server").Key("ROOT_URL").Value(), fmt.Sprintf("%d", port))
if err != nil {

repo.diff.view_file

@@ -193,6 +193,30 @@ func ReplacePortOfUrl(originalURL, targetPort string) (string, error) {
newURL := parsedURL.String()
return newURL, nil
}
func GetPortFromURL(urlStr string) (string, error) {
parsedURL, err := url.Parse(urlStr)
if err != nil {
return "", fmt.Errorf("解析URL失败: %v", err)
}
// 获取主机名和端口号
_, port, err := net.SplitHostPort(parsedURL.Host)
if err != nil {
// 如果SplitHostPort失败说明URL中没有明确指定端口
// 需要根据协议判断默认端口
switch parsedURL.Scheme {
case "http":
return "80", nil
case "https":
return "443", nil
default:
return "", fmt.Errorf("未知协议: %s", parsedURL.Scheme)
}
}
// 如果端口存在,直接返回
return port, nil
}
// addFileToTar 将文件添加到 tar 归档
func AddFileToTar(tw *tar.Writer, filename string, content string, mode int64) error {