refactor: Decompose logger completely
This commit is contained in:
@@ -10,8 +10,8 @@ import (
|
||||
|
||||
"github.com/pojntfx/stfs/internal/compression"
|
||||
"github.com/pojntfx/stfs/internal/converters"
|
||||
models "github.com/pojntfx/stfs/internal/db/sqlite/models/metadata"
|
||||
"github.com/pojntfx/stfs/internal/encryption"
|
||||
"github.com/pojntfx/stfs/internal/formatting"
|
||||
"github.com/pojntfx/stfs/internal/ioext"
|
||||
"github.com/pojntfx/stfs/internal/mtio"
|
||||
"github.com/pojntfx/stfs/internal/records"
|
||||
@@ -31,6 +31,8 @@ func Archive(
|
||||
from string,
|
||||
overwrite bool,
|
||||
compressionLevel string,
|
||||
|
||||
onHeader func(hdr *models.Header),
|
||||
) ([]*tar.Header, error) {
|
||||
dirty := false
|
||||
tw, isRegular, cleanup, err := tape.OpenTapeWriteOnly(state.Drive, recordSize, overwrite)
|
||||
@@ -91,7 +93,6 @@ func Archive(
|
||||
defer cleanup(&dirty)
|
||||
|
||||
headers := []*tar.Header{}
|
||||
first := true
|
||||
return headers, filepath.Walk(from, func(path string, info fs.FileInfo, err error) error {
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -195,16 +196,13 @@ func Archive(
|
||||
}
|
||||
}
|
||||
|
||||
if first {
|
||||
if err := formatting.PrintCSV(formatting.TARHeaderCSV); err != nil {
|
||||
if onHeader != nil {
|
||||
dbhdr, err := converters.TarHeaderToDBHeader(-1, -1, -1, -1, hdr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
first = false
|
||||
}
|
||||
|
||||
if err := formatting.PrintCSV(converters.TARHeaderToCSV(-1, -1, -1, -1, hdr)); err != nil {
|
||||
return err
|
||||
onHeader(dbhdr)
|
||||
}
|
||||
|
||||
hdrToAppend := *hdr
|
||||
|
||||
@@ -7,7 +7,6 @@ import (
|
||||
"github.com/pojntfx/stfs/internal/converters"
|
||||
models "github.com/pojntfx/stfs/internal/db/sqlite/models/metadata"
|
||||
"github.com/pojntfx/stfs/internal/encryption"
|
||||
"github.com/pojntfx/stfs/internal/formatting"
|
||||
"github.com/pojntfx/stfs/internal/persisters"
|
||||
"github.com/pojntfx/stfs/internal/records"
|
||||
"github.com/pojntfx/stfs/internal/signature"
|
||||
@@ -23,6 +22,8 @@ func Delete(
|
||||
|
||||
recordSize int,
|
||||
name string,
|
||||
|
||||
onHeader func(hdr *models.Header),
|
||||
) error {
|
||||
dirty := false
|
||||
tw, isRegular, cleanup, err := tape.OpenTapeWriteOnly(state.Drive, recordSize, false)
|
||||
@@ -58,10 +59,6 @@ func Delete(
|
||||
headersToDelete = append(headersToDelete, dbhdrs...)
|
||||
}
|
||||
|
||||
if err := formatting.PrintCSV(formatting.TARHeaderCSV); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Append deletion hdrs to the tape or tar file
|
||||
hdrs := []*tar.Header{}
|
||||
for _, dbhdr := range headersToDelete {
|
||||
@@ -88,8 +85,13 @@ func Delete(
|
||||
|
||||
dirty = true
|
||||
|
||||
if err := formatting.PrintCSV(converters.TARHeaderToCSV(-1, -1, -1, -1, hdr)); err != nil {
|
||||
return err
|
||||
if onHeader != nil {
|
||||
dbhdr, err := converters.TarHeaderToDBHeader(-1, -1, -1, -1, hdr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
onHeader(dbhdr)
|
||||
}
|
||||
|
||||
hdrs = append(hdrs, hdr)
|
||||
@@ -122,5 +124,7 @@ func Delete(
|
||||
func(hdr *tar.Header, isRegular bool) error {
|
||||
return nil // We sign above, no need to verify
|
||||
},
|
||||
|
||||
onHeader,
|
||||
)
|
||||
}
|
||||
|
||||
+11
-7
@@ -8,7 +8,6 @@ import (
|
||||
"github.com/pojntfx/stfs/internal/converters"
|
||||
models "github.com/pojntfx/stfs/internal/db/sqlite/models/metadata"
|
||||
"github.com/pojntfx/stfs/internal/encryption"
|
||||
"github.com/pojntfx/stfs/internal/formatting"
|
||||
"github.com/pojntfx/stfs/internal/persisters"
|
||||
"github.com/pojntfx/stfs/internal/records"
|
||||
"github.com/pojntfx/stfs/internal/signature"
|
||||
@@ -25,6 +24,8 @@ func Move(
|
||||
recordSize int,
|
||||
from string,
|
||||
to string,
|
||||
|
||||
onHeader func(hdr *models.Header),
|
||||
) error {
|
||||
dirty := false
|
||||
tw, isRegular, cleanup, err := tape.OpenTapeWriteOnly(state.Drive, recordSize, false)
|
||||
@@ -60,10 +61,6 @@ func Move(
|
||||
headersToMove = append(headersToMove, dbhdrs...)
|
||||
}
|
||||
|
||||
if err := formatting.PrintCSV(formatting.TARHeaderCSV); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Append move headers to the tape or tar file
|
||||
hdrs := []*tar.Header{}
|
||||
for _, dbhdr := range headersToMove {
|
||||
@@ -92,8 +89,13 @@ func Move(
|
||||
|
||||
dirty = true
|
||||
|
||||
if err := formatting.PrintCSV(converters.TARHeaderToCSV(-1, -1, -1, -1, hdr)); err != nil {
|
||||
return err
|
||||
if onHeader != nil {
|
||||
dbhdr, err := converters.TarHeaderToDBHeader(-1, -1, -1, -1, hdr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
onHeader(dbhdr)
|
||||
}
|
||||
|
||||
hdrs = append(hdrs, hdr)
|
||||
@@ -126,5 +128,7 @@ func Move(
|
||||
func(hdr *tar.Header, isRegular bool) error {
|
||||
return nil // We sign above, no need to verify
|
||||
},
|
||||
|
||||
onHeader,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -8,9 +8,7 @@ import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/pojntfx/stfs/internal/converters"
|
||||
models "github.com/pojntfx/stfs/internal/db/sqlite/models/metadata"
|
||||
"github.com/pojntfx/stfs/internal/formatting"
|
||||
"github.com/pojntfx/stfs/internal/persisters"
|
||||
"github.com/pojntfx/stfs/pkg/config"
|
||||
"github.com/pojntfx/stfs/pkg/hardware"
|
||||
@@ -26,6 +24,8 @@ func Restore(
|
||||
from string,
|
||||
to string,
|
||||
flatten bool,
|
||||
|
||||
onHeader func(hdr *models.Header),
|
||||
) error {
|
||||
metadataPersister := persisters.NewMetadataPersister(state.Metadata)
|
||||
if err := metadataPersister.Open(); err != nil {
|
||||
@@ -59,20 +59,9 @@ func Restore(
|
||||
headersToRestore = append(headersToRestore, dbhdrs...)
|
||||
}
|
||||
|
||||
for i, dbhdr := range headersToRestore {
|
||||
if i == 0 {
|
||||
if err := formatting.PrintCSV(formatting.TARHeaderCSV); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
hdr, err := converters.DBHeaderToTarHeader(dbhdr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := formatting.PrintCSV(converters.TARHeaderToCSV(dbhdr.Record, dbhdr.Lastknownrecord, dbhdr.Block, dbhdr.Lastknownblock, hdr)); err != nil {
|
||||
return err
|
||||
for _, dbhdr := range headersToRestore {
|
||||
if onHeader != nil {
|
||||
onHeader(dbhdr)
|
||||
}
|
||||
|
||||
dst := dbhdr.Name
|
||||
@@ -101,7 +90,7 @@ func Restore(
|
||||
dst,
|
||||
false,
|
||||
|
||||
false,
|
||||
nil,
|
||||
); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
+17
-14
@@ -10,8 +10,8 @@ import (
|
||||
|
||||
"github.com/pojntfx/stfs/internal/compression"
|
||||
"github.com/pojntfx/stfs/internal/converters"
|
||||
models "github.com/pojntfx/stfs/internal/db/sqlite/models/metadata"
|
||||
"github.com/pojntfx/stfs/internal/encryption"
|
||||
"github.com/pojntfx/stfs/internal/formatting"
|
||||
"github.com/pojntfx/stfs/internal/ioext"
|
||||
"github.com/pojntfx/stfs/internal/mtio"
|
||||
"github.com/pojntfx/stfs/internal/records"
|
||||
@@ -31,6 +31,8 @@ func Update(
|
||||
from string,
|
||||
overwrite bool,
|
||||
compressionLevel string,
|
||||
|
||||
onHeader func(hdr *models.Header),
|
||||
) ([]*tar.Header, error) {
|
||||
dirty := false
|
||||
tw, isRegular, cleanup, err := tape.OpenTapeWriteOnly(state.Drive, recordSize, false)
|
||||
@@ -40,7 +42,6 @@ func Update(
|
||||
defer cleanup(&dirty)
|
||||
|
||||
headers := []*tar.Header{}
|
||||
first := true
|
||||
return headers, filepath.Walk(from, func(path string, info fs.FileInfo, err error) error {
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -149,19 +150,16 @@ func Update(
|
||||
}
|
||||
}
|
||||
|
||||
if first {
|
||||
if err := formatting.PrintCSV(formatting.TARHeaderCSV); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
first = false
|
||||
}
|
||||
|
||||
if overwrite {
|
||||
hdr.PAXRecords[records.STFSRecordReplacesContent] = records.STFSRecordReplacesContentTrue
|
||||
|
||||
if err := formatting.PrintCSV(converters.TARHeaderToCSV(-1, -1, -1, -1, hdr)); err != nil {
|
||||
return err
|
||||
if onHeader != nil {
|
||||
dbhdr, err := converters.TarHeaderToDBHeader(-1, -1, -1, -1, hdr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
onHeader(dbhdr)
|
||||
}
|
||||
|
||||
hdrToAppend := *hdr
|
||||
@@ -234,8 +232,13 @@ func Update(
|
||||
} else {
|
||||
hdr.Size = 0 // Don't try to seek after the record
|
||||
|
||||
if err := formatting.PrintCSV(converters.TARHeaderToCSV(-1, -1, -1, -1, hdr)); err != nil {
|
||||
return err
|
||||
if onHeader != nil {
|
||||
dbhdr, err := converters.TarHeaderToDBHeader(-1, -1, -1, -1, hdr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
onHeader(dbhdr)
|
||||
}
|
||||
|
||||
hdrToAppend := *hdr
|
||||
|
||||
Reference in New Issue
Block a user