diff --git a/vfs/dir.go b/vfs/dir.go index e1d92d0e8..16084b833 100644 --- a/vfs/dir.go +++ b/vfs/dir.go @@ -197,10 +197,14 @@ func (d *Dir) _readDir() error { return nil } +// update d.items for each dir in the DirTree below this one and +// set the last read time - must be called with the lock held func (d *Dir) _readDirFromDirTree(dirTree walk.DirTree, when time.Time) error { return d._readDirFromEntries(dirTree[d.path], dirTree, when) } +// update d.items and if dirTree is not nil update each dir in the DirTree below this one and +// set the last read time - must be called with the lock held func (d *Dir) _readDirFromEntries(entries fs.DirEntries, dirTree walk.DirTree, when time.Time) error { var err error // Cache the items by name diff --git a/vfs/rc.go b/vfs/rc.go index 0d5a5a12d..bfe47fe32 100644 --- a/vfs/rc.go +++ b/vfs/rc.go @@ -1,6 +1,7 @@ package vfs import ( + "strconv" "strings" "github.com/ncw/rclone/fs" @@ -95,11 +96,8 @@ starting with dir will forget that dir, eg if !ok { return out, errors.Errorf("value must be string %q=%v", k, v) } - switch strings.ToLower(s) { - case "true", "1": - recursive = true - case "false", "0": - default: + recursive, err = strconv.ParseBool(s) + if err != nil { return out, errors.Errorf("invalid value %q=%v", k, v) } delete(in, k) @@ -151,9 +149,9 @@ starting with dir will forget that dir, eg } return out, nil }, - Title: "Refresh the directory cache tree.", + Title: "Refresh the directory cache.", Help: ` -This reads the full directory tree for the paths and freshens the +This reads the directories for the specified paths and freshens the directory cache. If no paths are passed in then it will refresh the root directory. @@ -165,7 +163,8 @@ starting with dir will refresh that directory, eg rclone rc vfs/refresh dir=home/junk dir2=data/misc -This refresh will use --fast-list if enabled. +If the parameter recursive=true is given the whole directory tree +will get refreshed. This refresh will use --fast-list if enabled. `, })