diff --git a/kernel/util/runtime.go b/kernel/util/runtime.go index 214a626b6..ec2dbb86d 100644 --- a/kernel/util/runtime.go +++ b/kernel/util/runtime.go @@ -116,7 +116,7 @@ var ( ) var ( - thirdPartySyncCheckTicker = time.NewTicker(time.Minute * 10) + thirdPartySyncCheckTicker = time.NewTicker(time.Second * 10) ) func ReportFileSysFatalError(err error) { @@ -246,6 +246,31 @@ func checkFileSysStatus() { func IsCloudDrivePath(absPath string) bool { absPathLower := strings.ToLower(absPath) + if isICloudPath(absPathLower) { + return true + } + return strings.Contains(absPathLower, "onedrive") || strings.Contains(absPathLower, "dropbox") || strings.Contains(absPathLower, "google drive") || strings.Contains(absPathLower, "pcloud") } + +func isICloudPath(absPath string) bool { + if !gulu.OS.IsDarwin() { + return false + } + + iCloudRoot := "~/Library/Mobile Documents" + err := filepath.Walk(iCloudRoot, func(path string, info os.FileInfo, err error) error { + if nil != err { + return err + } + + logging.LogInfof("path: %s", path) + return nil + }) + if nil != err { + logging.LogErrorf("walk iCloud dir [%s] failed: %s", iCloudRoot, err) + } + + return false +}