支持通过空格拆分多文件(shell数组)
支持files参数的值为在shell中得到的多文件列表(空格拼接)
This commit is contained in:
parent
23a38ad334
commit
f687e7dda9
38
main.go
38
main.go
@ -8,6 +8,7 @@ import (
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
"regexp"
|
||||
|
||||
"code.gitea.io/sdk/gitea"
|
||||
gha "github.com/sethvargo/go-githubactions"
|
||||
@ -107,24 +108,31 @@ func getDirFiles(dir string) ([]string, error) {
|
||||
|
||||
func getFiles(parentDir, files string) ([]string, error) {
|
||||
var fileList []string
|
||||
lines := strings.Split(files, "\n")
|
||||
for _, line := range lines {
|
||||
line = strings.Trim(line, "'")
|
||||
line = strings.Trim(line, `"`)
|
||||
if filepath.IsAbs(line) {
|
||||
return nil, fmt.Errorf("file path %s is absolute", line)
|
||||
}
|
||||
line = filepath.Join(parentDir, line)
|
||||
matches, err := filepath.Glob(line)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, match := range matches {
|
||||
files, err := getDirFiles(match)
|
||||
fmt.Printf("the value of the files is: %s\n", files)
|
||||
reg := regexp.MustCompile(`[^\s"']+|"([^"]*)"|'([^']*)'`)
|
||||
arr := reg.FindAllString(files, -1)
|
||||
fmt.Printf("the value after splitting by spaces is: %s\n", strings.Join(arr, ", "))
|
||||
for _, str := range arr {
|
||||
lines := strings.Split(str, "\n")
|
||||
fmt.Printf("the value after splitting %s by \\n is: %s\n", str, strings.Join(lines, ", "))
|
||||
for _, line := range lines {
|
||||
line = strings.Trim(line, "'")
|
||||
line = strings.Trim(line, `"`)
|
||||
if filepath.IsAbs(line) {
|
||||
return nil, fmt.Errorf("file path %s is absolute", line)
|
||||
}
|
||||
line = filepath.Join(parentDir, line)
|
||||
matches, err := filepath.Glob(line)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
fileList = append(fileList, files...)
|
||||
for _, match := range matches {
|
||||
files, err := getDirFiles(match)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
fileList = append(fileList, files...)
|
||||
}
|
||||
}
|
||||
}
|
||||
return fileList, nil
|
||||
|
Loading…
x
Reference in New Issue
Block a user