Make -x/--one-file-system compile under Windows and add docs

This commit is contained in:
Nick Craig-Wood 2016-11-03 11:51:36 +00:00
parent 978e06a623
commit b35123ba48
4 changed files with 107 additions and 13 deletions

31
local/read_device_unix.go Normal file
View file

@ -0,0 +1,31 @@
// Device reading functions
// +build darwin dragonfly freebsd linux netbsd openbsd solaris
package local
import (
"os"
"syscall"
"github.com/ncw/rclone/fs"
"github.com/spf13/pflag"
)
var (
oneFileSystem = pflag.BoolP("one-file-system", "x", false, "Don't cross filesystem boundaries.")
)
// readDevice turns a valid os.FileInfo into a device number,
// returning devUnset if it fails.
func readDevice(fi os.FileInfo) uint64 {
if !*oneFileSystem {
return devUnset
}
statT, ok := fi.Sys().(*syscall.Stat_t)
if !ok {
fs.Debug(fi.Name(), "Type assertion fi.Sys().(*syscall.Stat_t) failed from: %#v", fi.Sys())
return devUnset
}
return uint64(statT.Dev)
}