gosync/tools/scanner.go

42 lines
891 B
Go
Raw Normal View History

2023-09-07 15:20:19 +02:00
package tools
import (
"io/fs"
"os"
"path/filepath"
"strconv"
"time"
"velvettear/gosync/log"
"velvettear/gosync/settings"
)
var sourceFiles []string
// unexported function(s)
func getSourceFiles() []string {
timestamp := time.Now()
stats, error := os.Stat(settings.Source)
if error != nil {
log.Error("encountered an error getting the stats for the source", error.Error())
}
if stats.IsDir() {
log.Info("scanning source...", settings.Source)
filepath.WalkDir(settings.Source, fillSourceFiles)
log.InfoTimed("found "+strconv.Itoa(len(sourceFiles))+" source files", timestamp.UnixMilli())
} else {
sourceFiles = append(sourceFiles, settings.Source)
}
return sourceFiles
}
func fillSourceFiles(path string, dir fs.DirEntry, err error) error {
if err != nil {
return err
}
if dir.IsDir() {
return nil
}
sourceFiles = append(sourceFiles, path)
return nil
}