diff options
Diffstat (limited to 'repository/close.go')
| -rw-r--r-- | repository/close.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/repository/close.go b/repository/close.go new file mode 100644 index 00000000..998742d0 --- /dev/null +++ b/repository/close.go @@ -0,0 +1,32 @@ +package repository + +import "errors" + +// Close closes owned stores and filesystem roots. +// The behavior of the repo after Close is undefined. +func (repo *Repository) Close() error { + var errs []error + + if repo.refs != nil { + err := repo.refs.Close() + if err != nil { + errs = append(errs, err) + } + } + + if repo.objects != nil { + err := repo.objects.Close() + if err != nil { + errs = append(errs, err) + } + } + + if repo.objectsLooseForWritingOnly != nil { + err := repo.objectsLooseForWritingOnly.Close() + if err != nil { + errs = append(errs, err) + } + } + + return errors.Join(errs...) +} |
