Advertisement
Guest User

Untitled

a guest
Nov 1st, 2016
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. --- local/local.go.orig-20161101Z151259 2016-11-01 08:04:10.891020265 -0200
  2. +++ local/local.go 2016-11-01 14:39:49.377083966 -0200
  3. @@ -12,6 +12,7 @@
  4. "runtime"
  5. "strings"
  6. "sync"
  7. + "syscall"
  8. "time"
  9. "unicode/utf8"
  10.  
  11. @@ -19,8 +20,11 @@
  12.  
  13. "github.com/ncw/rclone/fs"
  14. "github.com/pkg/errors"
  15. + "github.com/spf13/pflag"
  16. )
  17.  
  18. +var oneFileSystem = pflag.BoolP("one-file-system", "x", false, "Don't cross filesystem boundaries.")
  19. +
  20. // Register with Fs
  21. func init() {
  22. fsi := &fs.RegInfo{
  23. @@ -151,6 +155,15 @@
  24. out.SetError(errors.Wrapf(err, "failed to open directory %q", dirpath))
  25. return nil
  26. }
  27. +
  28. + // Obtain dirpath's device
  29. + fdFi, err := os.Stat(dirpath)
  30. + if err != nil {
  31. + out.SetError(errors.Wrapf(err, "failed to stat directory %q", dirpath))
  32. + return nil
  33. + }
  34. + fdDev := fdFi.Sys().(*syscall.Stat_t).Dev
  35. +
  36. defer func() {
  37. err := fd.Close()
  38. if err != nil {
  39. @@ -186,7 +199,7 @@
  40. if out.AddDir(dir) {
  41. return nil
  42. }
  43. - if level > 0 {
  44. + if level > 0 && ! (*oneFileSystem && ! ((fi.Sys().(*syscall.Stat_t)).Dev == fdDev )) {
  45. subdirs = append(subdirs, listArgs{remote: newRemote, dirpath: newPath, level: level - 1})
  46. }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement