From 04563efa9c0dc1f6a36094dfd884ae432cf46b29 Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Mon, 18 Oct 2021 16:00:08 +0200 Subject: add intermediate export package no to make repo dependant on dna --- repo/export.go | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++ repo/export_dir.go | 60 ------------------------------------------------------ 2 files changed, 58 insertions(+), 60 deletions(-) create mode 100644 repo/export.go delete mode 100644 repo/export_dir.go (limited to 'repo') diff --git a/repo/export.go b/repo/export.go new file mode 100644 index 0000000..dd12077 --- /dev/null +++ b/repo/export.go @@ -0,0 +1,58 @@ +/* Copyright (C) 2021 Nicolas Peugnet + + This file is part of dna-backup. + + dna-backup is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + dna-backup is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with dna-backup. If not, see . */ + +package repo + +import ( + "io" + + "github.com/n-peugnet/dna-backup/export" + "github.com/n-peugnet/dna-backup/logger" +) + +func (r *Repo) Export(exporter export.Exporter) { + r.Init() + chunks := r.loadChunks(r.versions) + for i := range r.versions { + var err error + input, end := exporter.ExportVersion() + if len(chunks[i]) > 0 { + for _, c := range chunks[i] { + _, err := io.Copy(input.Chunks, c.Reader()) + if err != nil { + logger.Error(err) + } + } + input.Chunks.Close() + } + readDelta(r.versions[i], recipeName, r.chunkReadWrapper, func(rc io.ReadCloser) { + _, err = io.Copy(input.Recipe, rc) + if err != nil { + logger.Error("load recipe ", err) + } + input.Recipe.Close() + }) + readDelta(r.versions[i], filesName, r.chunkReadWrapper, func(rc io.ReadCloser) { + _, err = io.Copy(input.Files, rc) + if err != nil { + logger.Error("load files ", err) + } + input.Files.Close() + }) + <-end + } +} diff --git a/repo/export_dir.go b/repo/export_dir.go deleted file mode 100644 index bffa7f0..0000000 --- a/repo/export_dir.go +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright (C) 2021 Nicolas Peugnet - - This file is part of dna-backup. - - dna-backup is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - dna-backup is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with dna-backup. If not, see . */ - -package repo - -import ( - "io" - - "github.com/n-peugnet/dna-backup/dna" - "github.com/n-peugnet/dna-backup/logger" - "github.com/n-peugnet/dna-backup/utils" -) - -func (r *Repo) ExportDir(dest string, trackSize int) { - r.Init() - exporter := dna.New(dest, 96, trackSize, 10000, utils.ZlibWriter, utils.ZlibReader) - chunks := r.loadChunks(r.versions) - for i := range r.versions { - var err error - input, end := exporter.VersionInput() - if len(chunks[i]) > 0 { - for _, c := range chunks[i] { - _, err := io.Copy(input.Chunks, c.Reader()) - if err != nil { - logger.Error(err) - } - } - input.Chunks.Close() - } - readDelta(r.versions[i], recipeName, r.chunkReadWrapper, func(rc io.ReadCloser) { - _, err = io.Copy(input.Recipe, rc) - if err != nil { - logger.Error("load recipe ", err) - } - input.Recipe.Close() - }) - readDelta(r.versions[i], filesName, r.chunkReadWrapper, func(rc io.ReadCloser) { - _, err = io.Copy(input.Files, rc) - if err != nil { - logger.Error("load files ", err) - } - input.Files.Close() - }) - <-end - } -} -- cgit v1.2.3