Reowrk recursive file finding to be async

This commit is contained in:
2024-07-01 13:03:56 +02:00
parent e75a376ca4
commit 95711048ba
3 changed files with 51 additions and 34 deletions

12
util.go
View File

@@ -61,8 +61,10 @@ func ConvertHome(input string) (string, error) {
return input, nil
}
func GetSyncFilesRecursively(input string) ([]string, error) {
var files []string
func GetSyncFilesRecursively(input string, output chan string, status chan error) {
defer close(output)
defer close(status)
err := filepath.WalkDir(input, func(path string, file fs.DirEntry, err error) error {
if err != nil {
return err
@@ -70,14 +72,12 @@ func GetSyncFilesRecursively(input string) ([]string, error) {
// Effectively only find files named "sync" (with no extension!!)
if !file.IsDir() && DirRegex.MatchString(path) {
files = append(files, path)
output <- path
}
return nil
})
if err != nil {
return nil, err
status <- err
}
return files, nil
}