mirror of
https://github.com/octoleo/restic.git
synced 2024-12-22 10:58:55 +00:00
Deduplicate dumper closing logic
This commit is contained in:
parent
e136dd8696
commit
83b10dbb12
@ -12,6 +12,7 @@ import (
|
||||
|
||||
// dumper implements saving node data.
|
||||
type dumper interface {
|
||||
io.Closer
|
||||
dumpNode(ctx context.Context, node *restic.Node, repo restic.Repository) error
|
||||
}
|
||||
|
||||
@ -24,11 +25,13 @@ func writeDump(ctx context.Context, repo restic.Repository, tree *restic.Tree, r
|
||||
rootNode.Path = rootPath
|
||||
err := dumpTree(ctx, repo, rootNode, rootPath, dmp)
|
||||
if err != nil {
|
||||
dmp.Close()
|
||||
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
return dmp.Close()
|
||||
}
|
||||
|
||||
func dumpTree(ctx context.Context, repo restic.Repository, rootNode *restic.Node, rootPath string, dmp dumper) error {
|
||||
|
@ -23,13 +23,10 @@ var _ dumper = tarDumper{}
|
||||
func WriteTar(ctx context.Context, repo restic.Repository, tree *restic.Tree, rootPath string, dst io.Writer) error {
|
||||
dmp := tarDumper{w: tar.NewWriter(dst)}
|
||||
|
||||
err := writeDump(ctx, repo, tree, rootPath, dmp, dst)
|
||||
if err != nil {
|
||||
dmp.w.Close()
|
||||
|
||||
return err
|
||||
}
|
||||
return writeDump(ctx, repo, tree, rootPath, dmp, dst)
|
||||
}
|
||||
|
||||
func (dmp tarDumper) Close() error {
|
||||
return dmp.w.Close()
|
||||
}
|
||||
|
||||
|
@ -21,13 +21,10 @@ var _ dumper = zipDumper{}
|
||||
func WriteZip(ctx context.Context, repo restic.Repository, tree *restic.Tree, rootPath string, dst io.Writer) error {
|
||||
dmp := zipDumper{w: zip.NewWriter(dst)}
|
||||
|
||||
err := writeDump(ctx, repo, tree, rootPath, dmp, dst)
|
||||
if err != nil {
|
||||
dmp.w.Close()
|
||||
|
||||
return err
|
||||
}
|
||||
return writeDump(ctx, repo, tree, rootPath, dmp, dst)
|
||||
}
|
||||
|
||||
func (dmp zipDumper) Close() error {
|
||||
return dmp.w.Close()
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user