summaryrefslogtreecommitdiffstats
path: root/lib/config/folderconfiguration.go
diff options
context:
space:
mode:
Diffstat (limited to 'lib/config/folderconfiguration.go')
-rw-r--r--lib/config/folderconfiguration.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/config/folderconfiguration.go b/lib/config/folderconfiguration.go
index 98f95a2054..7951a20124 100644
--- a/lib/config/folderconfiguration.go
+++ b/lib/config/folderconfiguration.go
@@ -14,6 +14,7 @@ import (
"github.com/syncthing/syncthing/lib/fs"
"github.com/syncthing/syncthing/lib/protocol"
"github.com/syncthing/syncthing/lib/util"
+ "github.com/syncthing/syncthing/lib/versioner"
)
var (
@@ -98,6 +99,18 @@ func (f FolderConfiguration) Filesystem() fs.Filesystem {
return f.cachedFilesystem
}
+func (f FolderConfiguration) Versioner() versioner.Versioner {
+ if f.Versioning.Type == "" {
+ return nil
+ }
+ versionerFactory, ok := versioner.Factories[f.Versioning.Type]
+ if !ok {
+ l.Fatalf("Requested versioning type %q that does not exist", f.Versioning.Type)
+ }
+
+ return versionerFactory(f.ID, f.Filesystem(), f.Versioning.Params)
+}
+
func (f *FolderConfiguration) CreateMarker() error {
if err := f.CheckPath(); err != errMarkerMissing {
return err