From bd3729537573aed691754dbb87558bd84bf482a2 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Wed, 22 Mar 2023 19:44:28 +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 | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/kernel/util/runtime.go b/kernel/util/runtime.go index 8da73d1df..66d8a8044 100644 --- a/kernel/util/runtime.go +++ b/kernel/util/runtime.go @@ -267,6 +267,26 @@ func isICloudPath(absPath string) bool { return err } + if 0 != info.Mode()&os.ModeSymlink && 0 != info.Mode()&os.ModeDir { + resolved, symErr := filepath.EvalSymlinks(path) + if nil != symErr { + logging.LogErrorf("resolve symlink [%s] failed: %s", path, symErr) + return nil + } + filepath.Walk(resolved, func(path string, info os.FileInfo, err error) error { + if nil != err { + return err + } + + if absPath == strings.ToLower(path) { + logging.LogInfof("under symlink path: %s", path) + return fmt.Errorf("found") + } + + return nil + }) + } + logging.LogInfof("path: %s", path) return nil })