Include full path to file in callback
This commit is contained in:
@@ -20,7 +20,7 @@ func (fs *Filesystem) NewWalker() *FileWalker {
|
||||
// Iterate over all of the files and directories within a given directory. When a file is
|
||||
// found the callback will be called with the file information. If a directory is encountered
|
||||
// it will be recursively passed back through to this function.
|
||||
func (fw *FileWalker) Walk(dir string, ctx context.Context, callback func (os.FileInfo) bool) error {
|
||||
func (fw *FileWalker) Walk(dir string, ctx context.Context, callback func (os.FileInfo, string) bool) error {
|
||||
cleaned, err := fw.SafePath(dir)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -38,7 +38,7 @@ func (fw *FileWalker) Walk(dir string, ctx context.Context, callback func (os.Fi
|
||||
|
||||
for _, f := range files {
|
||||
if f.IsDir() {
|
||||
p := filepath.Join(dir, f.Name())
|
||||
p := filepath.Join(cleaned, f.Name())
|
||||
// Recursively call this function to continue digging through the directory tree within
|
||||
// a seperate goroutine. If the context is canceled abort this process.
|
||||
g.Go(func() error {
|
||||
@@ -49,7 +49,7 @@ func (fw *FileWalker) Walk(dir string, ctx context.Context, callback func (os.Fi
|
||||
// If the callback returns true, go ahead and keep walking deeper. This allows
|
||||
// us to programatically continue deeper into directories, or stop digging
|
||||
// if that pathway knows it needs nothing else.
|
||||
if callback(f) {
|
||||
if callback(f, p) {
|
||||
return fw.Walk(p, ctx, callback)
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ func (fw *FileWalker) Walk(dir string, ctx context.Context, callback func (os.Fi
|
||||
// If this isn't a directory, go ahead and pass the file information into the
|
||||
// callback. We don't care about the response since we won't be stepping into
|
||||
// anything from here.
|
||||
callback(f)
|
||||
callback(f, filepath.Join(cleaned, f.Name()))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user