diff --git a/file.go b/file.go index b97e5d7..4053f91 100644 --- a/file.go +++ b/file.go @@ -1,7 +1,6 @@ package sqan import ( - "errors" "time" ) @@ -12,26 +11,6 @@ type File struct { RelativePath string `json:"relativePath,omitempty"` Filename string `json:"filename,omitempty"` Extension string `json:"extension,omitempty"` - Hash string `json:"hash,omitempty"` Size int64 `json:"size,omitempty"` Modified time.Time `json:"modified,omitempty"` } - -func (f *File) Process() error { - return errors.New("unimplemented") -} - -func NewFile(rootDir, absPath string) *File { - relPath, relDir, filename, extension := ParsePath(rootDir, absPath) - - f := &File{ - RootDir: rootDir, - AbsolutePath: absPath, - RelativeDir: relDir, - RelativePath: relPath, - Filename: filename, - Extension: extension, - } - - return f -} diff --git a/scanner.go b/scanner.go index ac6757a..1a51ffe 100644 --- a/scanner.go +++ b/scanner.go @@ -75,8 +75,8 @@ func (s *Scanner) scan(rootDir, dir string, yield func(*File) bool) { continue } - f := NewFile(rootDir, absPath) - if len(s.extensions) > 0 && !slices.Contains(s.extensions, f.Extension) { + relPath, relDir, filename, extension := ParsePath(rootDir, absPath) + if len(s.extensions) > 0 && !slices.Contains(s.extensions, extension) { continue } @@ -86,8 +86,17 @@ func (s *Scanner) scan(rootDir, dir string, yield func(*File) bool) { continue } - f.Size = info.Size() - f.Modified = info.ModTime() + f := &File{ + RootDir: rootDir, + AbsolutePath: absPath, + RelativeDir: relDir, + RelativePath: relPath, + Filename: filename, + Extension: extension, + Size: info.Size(), + Modified: info.ModTime(), + } + if !yield(f) { return }