From ee5d3c72d9dc8ba35f449db16d95adad9cf9943c Mon Sep 17 00:00:00 2001 From: Felicitas Pojtinger Date: Mon, 6 Dec 2021 23:31:55 +0100 Subject: [PATCH] refactor: Drop offset in favor of ignoring the first index --- cmd/stbak/cmd/archive.go | 1 - cmd/stbak/cmd/recovery_index.go | 1 - cmd/stbak/cmd/update.go | 9 ++++--- pkg/recovery/index.go | 37 ++++++++++++--------------- pkg/utility/{utility.go => keygen.go} | 0 5 files changed, 22 insertions(+), 26 deletions(-) rename pkg/utility/{utility.go => keygen.go} (100%) diff --git a/cmd/stbak/cmd/archive.go b/cmd/stbak/cmd/archive.go index 7b9f92b..e9f0c4d 100644 --- a/cmd/stbak/cmd/archive.go +++ b/cmd/stbak/cmd/archive.go @@ -173,7 +173,6 @@ var archiveCmd = &cobra.Command{ int(lastIndexedBlock), viper.GetBool(overwriteFlag), - 0, func(hdr *tar.Header, i int) error { if len(hdrs) <= i { return errMissingTarHeader diff --git a/cmd/stbak/cmd/recovery_index.go b/cmd/stbak/cmd/recovery_index.go index 8d22e39..a4c6624 100644 --- a/cmd/stbak/cmd/recovery_index.go +++ b/cmd/stbak/cmd/recovery_index.go @@ -77,7 +77,6 @@ var recoveryIndexCmd = &cobra.Command{ viper.GetInt(blockFlag), viper.GetBool(overwriteFlag), - 0, func(hdr *tar.Header, i int) error { return encryption.DecryptHeader(hdr, viper.GetString(encryptionFlag), identity) }, diff --git a/cmd/stbak/cmd/update.go b/cmd/stbak/cmd/update.go index a3f9814..f1ad5c6 100644 --- a/cmd/stbak/cmd/update.go +++ b/cmd/stbak/cmd/update.go @@ -119,13 +119,16 @@ var updateCmd = &cobra.Command{ int(lastIndexedBlock), false, - 1, func(hdr *tar.Header, i int) error { - if len(hdrs) <= i { + if i == 0 { + return nil + } + + if len(hdrs) <= i-1 { return errMissingTarHeader } - *hdr = *hdrs[i] + *hdr = *hdrs[i-1] return nil }, diff --git a/pkg/recovery/index.go b/pkg/recovery/index.go index 1640674..883b7a0 100644 --- a/pkg/recovery/index.go +++ b/pkg/recovery/index.go @@ -32,7 +32,6 @@ func Index( block int, overwrite bool, - offset int, decryptHeader func( hdr *tar.Header, i int, @@ -129,18 +128,16 @@ func Index( break } - if i >= offset { - if err := decryptHeader(hdr, i-offset); err != nil { - return err - } + if err := decryptHeader(hdr, i); err != nil { + return err + } - if err := verifyHeader(hdr, isRegular); err != nil { - return err - } + if err := verifyHeader(hdr, isRegular); err != nil { + return err + } - if err := indexHeader(record, block, hdr, metadataPersister, pipes.Compression, pipes.Encryption); err != nil { - return nil - } + if err := indexHeader(record, block, hdr, metadataPersister, pipes.Compression, pipes.Encryption); err != nil { + return nil } curr, err := f.Seek(0, io.SeekCurrent) @@ -215,18 +212,16 @@ func Index( } } - if i >= offset { - if err := decryptHeader(hdr, i-offset); err != nil { - return err - } + if err := decryptHeader(hdr, i); err != nil { + return err + } - if err := verifyHeader(hdr, isRegular); err != nil { - return err - } + if err := verifyHeader(hdr, isRegular); err != nil { + return err + } - if err := indexHeader(record, block, hdr, metadataPersister, pipes.Compression, pipes.Encryption); err != nil { - return nil - } + if err := indexHeader(record, block, hdr, metadataPersister, pipes.Compression, pipes.Encryption); err != nil { + return nil } curr = int64(counter.BytesRead) diff --git a/pkg/utility/utility.go b/pkg/utility/keygen.go similarity index 100% rename from pkg/utility/utility.go rename to pkg/utility/keygen.go