diff --git a/main.go b/main.go index e2acaaa..26ac8e7 100644 --- a/main.go +++ b/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