diff options
Diffstat (limited to 'lib/config/folderconfiguration.go')
-rw-r--r-- | lib/config/folderconfiguration.go | 13 |
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 |