diff --git a/src/restic/backend/layout.go b/src/restic/backend/layout.go index f57e962f6..de72f07d4 100644 --- a/src/restic/backend/layout.go +++ b/src/restic/backend/layout.go @@ -15,6 +15,7 @@ import ( type Layout interface { Filename(restic.Handle) string Dirname(restic.Handle) string + Basedir(restic.FileType) string Paths() []string } diff --git a/src/restic/backend/layout_cloud.go b/src/restic/backend/layout_cloud.go index 6f65be484..6a6947c59 100644 --- a/src/restic/backend/layout_cloud.go +++ b/src/restic/backend/layout_cloud.go @@ -34,3 +34,8 @@ func (l *CloudLayout) Paths() (dirs []string) { } return dirs } + +// Basedir returns the base dir name for files of type t. +func (l *CloudLayout) Basedir(t restic.FileType) string { + return l.Join(l.Path, cloudLayoutPaths[t]) +} diff --git a/src/restic/backend/layout_default.go b/src/restic/backend/layout_default.go index fd6364b80..77cb27508 100644 --- a/src/restic/backend/layout_default.go +++ b/src/restic/backend/layout_default.go @@ -47,3 +47,8 @@ func (l *DefaultLayout) Paths() (dirs []string) { } return dirs } + +// Basedir returns the base dir name for type t. +func (l *DefaultLayout) Basedir(t restic.FileType) string { + return l.Join(l.Path, defaultLayoutPaths[t]) +} diff --git a/src/restic/backend/layout_s3.go b/src/restic/backend/layout_s3.go index 571d36335..42df63c3c 100644 --- a/src/restic/backend/layout_s3.go +++ b/src/restic/backend/layout_s3.go @@ -40,3 +40,8 @@ func (l *S3Layout) Paths() (dirs []string) { } return dirs } + +// Basedir returns the base dir name for type t. +func (l *S3Layout) Basedir(t restic.FileType) string { + return l.Join(l.Path, s3LayoutPaths[t]) +}