修改脚本仓库名称获取

This commit is contained in:
junleea 2024-07-06 19:06:18 +08:00
parent edf94cbca9
commit fd71cc85c4
1 changed files with 20 additions and 9 deletions

View File

@ -5,8 +5,8 @@ import (
"fmt" "fmt"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"os/exec" "os/exec"
"regexp"
"strconv" "strconv"
"strings"
"videoplayer/dao" "videoplayer/dao"
"videoplayer/proto" "videoplayer/proto"
) )
@ -55,9 +55,11 @@ func RunCID(c *gin.Context) {
c.JSON(200, gin.H{"error": "CID not found", "code": proto.OperationFailed, "message": "failed"}) c.JSON(200, gin.H{"error": "CID not found", "code": proto.OperationFailed, "message": "failed"})
return return
} else { } else {
re := regexp.MustCompile(`(?i)(?:https?://|git@)[^/]+/([^/]+)/([^/]+)(?:\.git)?$`) strs := strings.Split(cid.Url, "/")
matches := re.FindStringSubmatch(cid.Url) name := strs[len(strs)-1]
name := matches[2] names := strings.Split(name, ".")
name = names[0]
//脚本内容 //脚本内容
scriptContent := `#!/bin/bash scriptContent := `#!/bin/bash
TARGET_DIR = ` + proto.CID_BASE_DIR + `/workspace` + name + ` TARGET_DIR = ` + proto.CID_BASE_DIR + `/workspace` + name + `
@ -72,11 +74,15 @@ func RunCID(c *gin.Context) {
//执行脚本 //执行脚本
cmd := exec.Command("/bin/bash", "-c", scriptContent) cmd := exec.Command("/bin/bash", "-c", scriptContent)
err3 := cmd.Run() err3 := cmd.Run()
err3_info := ""
if err3 != nil {
err3_info = err3.Error()
}
fmt.Println("bash content:", scriptContent) fmt.Println("bash content:", scriptContent)
// 使用bytes.Buffer捕获输出 // 使用bytes.Buffer捕获输出
var out bytes.Buffer var out bytes.Buffer
cmd.Stdout = &out cmd.Stdout = &out
dao.CreateRunLog(req.ID, authID, scriptContent, out.String(), err3.Error()) //添加执行日志 dao.CreateRunLog(req.ID, authID, scriptContent, out.String(), err3_info) //添加执行日志
c.JSON(200, gin.H{"code": proto.SuccessCode, "message": "success", "data": "success"}) c.JSON(200, gin.H{"code": proto.SuccessCode, "message": "success", "data": "success"})
} }
@ -183,9 +189,10 @@ func CIDCallback(c *gin.Context) {
res := dao.FindCIDByIDAndToken(cid, token) res := dao.FindCIDByIDAndToken(cid, token)
if res.ID != 0 { if res.ID != 0 {
//从url获取仓库名称 //从url获取仓库名称
re := regexp.MustCompile(`(?i)(?:https?://|git@)[^/]+/([^/]+)/([^/]+)(?:\.git)?$`) strs := strings.Split(res.Url, "/")
matches := re.FindStringSubmatch(res.Url) name := strs[len(strs)-1]
name := matches[2] names := strings.Split(name, ".")
name = names[0]
scriptContent := `#!/bin/bash scriptContent := `#!/bin/bash
TARGET_DIR = ` + proto.CID_BASE_DIR + `/workspace` + name + ` TARGET_DIR = ` + proto.CID_BASE_DIR + `/workspace` + name + `
if [ ! -d $TARGET_DIR ]; then if [ ! -d $TARGET_DIR ]; then
@ -199,10 +206,14 @@ func CIDCallback(c *gin.Context) {
//执行脚本 //执行脚本
cmd := exec.Command("/bin/bash", "-c", scriptContent) cmd := exec.Command("/bin/bash", "-c", scriptContent)
err3 := cmd.Run() err3 := cmd.Run()
err3_info := ""
if err3 != nil {
err3_info = err3.Error()
}
// 使用bytes.Buffer捕获输出 // 使用bytes.Buffer捕获输出
var out bytes.Buffer var out bytes.Buffer
cmd.Stdout = &out cmd.Stdout = &out
dao.CreateRunLog(cid, res.Auth_id, scriptContent, out.String(), err3.Error()) //添加执行日志 dao.CreateRunLog(cid, res.Auth_id, scriptContent, out.String(), err3_info) //添加执行日志
c.JSON(200, gin.H{"code": proto.SuccessCode, "message": "success", "data": "success"}) c.JSON(200, gin.H{"code": proto.SuccessCode, "message": "success", "data": "success"})
} else { } else {
c.JSON(200, gin.H{"error": "CID not found by id and token", "code": proto.OperationFailed, "message": "failed"}) c.JSON(200, gin.H{"error": "CID not found by id and token", "code": proto.OperationFailed, "message": "failed"})