From 53185297a411ad287d97d6b4a258f51b83198335 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Tue, 31 Dec 2024 23:24:52 +0800 Subject: [PATCH] :art: Support local file system sync & backup https://github.com/siyuan-note/siyuan/pull/13663 --- kernel/model/sync.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/kernel/model/sync.go b/kernel/model/sync.go index 9f37a0fe2..91f978fea 100644 --- a/kernel/model/sync.go +++ b/kernel/model/sync.go @@ -475,6 +475,26 @@ func SetSyncProviderLocal(local *conf.Local) (err error) { local.Endpoint = strings.TrimSpace(local.Endpoint) local.Endpoint = util.NormalizeLocalPath(local.Endpoint) + absPath, err := filepath.Abs(local.Endpoint) + if nil != err { + msg := fmt.Sprintf("get endpoint [%s] abs path failed: %s", local.Endpoint, err) + logging.LogErrorf(msg) + err = errors.New(fmt.Sprintf(Conf.Language(77), msg)) + return + } + if !gulu.File.IsExist(absPath) { + msg := fmt.Sprintf("endpoint [%s] not exist", local.Endpoint+" ("+absPath+")") + logging.LogErrorf(msg) + err = errors.New(fmt.Sprintf(Conf.Language(77), msg)) + return + } + if util.IsAbsPathInWorkspace(absPath) { + msg := fmt.Sprintf("endpoint [%s] is in workspace", local.Endpoint+" ("+absPath+")") + logging.LogErrorf(msg) + err = errors.New(fmt.Sprintf(Conf.Language(77), msg)) + return + } + local.Timeout = util.NormalizeTimeout(local.Timeout) local.ConcurrentReqs = util.NormalizeConcurrentReqs(local.ConcurrentReqs, conf.ProviderLocal)