From 7854372a49cd0922938a8b468af30be2be72b6c5 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Wed, 22 Mar 2023 19:12:51 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20macOS=20=E7=AB=AF=E5=AF=B9=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E7=A9=BA=E9=97=B4=E6=94=BE=E7=BD=AE=E5=9C=A8=20iCloud?= =?UTF-8?q?=20=E8=B7=AF=E5=BE=84=E4=B8=8B=E5=81=9A=E6=A3=80=E6=9F=A5=20htt?= =?UTF-8?q?ps://github.com/siyuan-note/siyuan/issues/7747?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/util/runtime.go | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) 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 +}