refactor: Decompose suffix addition and removal
This commit is contained in:
@@ -309,32 +309,9 @@ func archive(
|
||||
hdr.PAXRecords[pax.STFSRecordUncompressedSize] = strconv.Itoa(int(hdr.Size))
|
||||
hdr.Size = int64(fileSizeCounter.BytesRead)
|
||||
|
||||
switch compressionFormat {
|
||||
case compressionFormatGZipKey:
|
||||
fallthrough
|
||||
case compressionFormatParallelGZipKey:
|
||||
hdr.Name += compressionFormatGZipSuffix
|
||||
case compressionFormatLZ4Key:
|
||||
hdr.Name += compressionFormatLZ4Suffix
|
||||
case compressionFormatZStandardKey:
|
||||
hdr.Name += compressionFormatZStandardSuffix
|
||||
case compressionFormatBrotliKey:
|
||||
hdr.Name += compressionFormatBrotliSuffix
|
||||
case compressionFormatBzip2Key:
|
||||
fallthrough
|
||||
case compressionFormatBzip2ParallelKey:
|
||||
hdr.Name += compressionFormatBzip2Suffix
|
||||
case compressionFormatNoneKey:
|
||||
default:
|
||||
return errUnsupportedCompressionFormat
|
||||
}
|
||||
|
||||
switch encryptionFormat {
|
||||
case encryptionFormatAgeKey:
|
||||
hdr.Name += encryptionFormatAgeSuffix
|
||||
case compressionFormatNoneKey:
|
||||
default:
|
||||
return errUnsupportedEncryptionFormat
|
||||
hdr.Name, err = addSuffix(hdr.Name, compressionFormat, encryptionFormat)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -429,6 +406,38 @@ func checkCompressionLevel(compressionLevel string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func addSuffix(name string, compressionFormat string, encryptionFormat string) (string, error) {
|
||||
switch compressionFormat {
|
||||
case compressionFormatGZipKey:
|
||||
fallthrough
|
||||
case compressionFormatParallelGZipKey:
|
||||
name += compressionFormatGZipSuffix
|
||||
case compressionFormatLZ4Key:
|
||||
name += compressionFormatLZ4Suffix
|
||||
case compressionFormatZStandardKey:
|
||||
name += compressionFormatZStandardSuffix
|
||||
case compressionFormatBrotliKey:
|
||||
name += compressionFormatBrotliSuffix
|
||||
case compressionFormatBzip2Key:
|
||||
fallthrough
|
||||
case compressionFormatBzip2ParallelKey:
|
||||
name += compressionFormatBzip2Suffix
|
||||
case compressionFormatNoneKey:
|
||||
default:
|
||||
return "", errUnsupportedCompressionFormat
|
||||
}
|
||||
|
||||
switch encryptionFormat {
|
||||
case encryptionFormatAgeKey:
|
||||
name += encryptionFormatAgeSuffix
|
||||
case compressionFormatNoneKey:
|
||||
default:
|
||||
return "", errUnsupportedEncryptionFormat
|
||||
}
|
||||
|
||||
return name, nil
|
||||
}
|
||||
|
||||
func encrypt(
|
||||
dst io.Writer,
|
||||
encryptionFormat string,
|
||||
|
||||
@@ -278,33 +278,11 @@ func indexHeader(
|
||||
}
|
||||
|
||||
if hdr.FileInfo().Mode().IsRegular() {
|
||||
switch encryptionFormat {
|
||||
case encryptionFormatAgeKey:
|
||||
hdr.Name = strings.TrimSuffix(hdr.Name, encryptionFormatAgeSuffix)
|
||||
case encryptionFormatNoneKey:
|
||||
default:
|
||||
return errUnsupportedEncryptionFormat
|
||||
}
|
||||
|
||||
switch compressionFormat {
|
||||
case compressionFormatGZipKey:
|
||||
fallthrough
|
||||
case compressionFormatParallelGZipKey:
|
||||
hdr.Name = strings.TrimSuffix(hdr.Name, compressionFormatGZipSuffix)
|
||||
case compressionFormatLZ4Key:
|
||||
hdr.Name = strings.TrimSuffix(hdr.Name, compressionFormatLZ4Suffix)
|
||||
case compressionFormatZStandardKey:
|
||||
hdr.Name = strings.TrimSuffix(hdr.Name, compressionFormatZStandardSuffix)
|
||||
case compressionFormatBrotliKey:
|
||||
hdr.Name = strings.TrimSuffix(hdr.Name, compressionFormatBrotliSuffix)
|
||||
case compressionFormatBzip2Key:
|
||||
fallthrough
|
||||
case compressionFormatBzip2ParallelKey:
|
||||
hdr.Name = strings.TrimSuffix(hdr.Name, compressionFormatBzip2Suffix)
|
||||
case compressionFormatNoneKey:
|
||||
default:
|
||||
return errUnsupportedCompressionFormat
|
||||
newName, err := removeSuffix(hdr.Name, compressionFormat, encryptionFormat)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
hdr.Name = newName
|
||||
}
|
||||
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(record, block, hdr)); err != nil {
|
||||
@@ -390,6 +368,38 @@ func indexHeader(
|
||||
return nil
|
||||
}
|
||||
|
||||
func removeSuffix(name string, compressionFormat string, encryptionFormat string) (string, error) {
|
||||
switch encryptionFormat {
|
||||
case encryptionFormatAgeKey:
|
||||
name = strings.TrimSuffix(name, encryptionFormatAgeSuffix)
|
||||
case encryptionFormatNoneKey:
|
||||
default:
|
||||
return "", errUnsupportedEncryptionFormat
|
||||
}
|
||||
|
||||
switch compressionFormat {
|
||||
case compressionFormatGZipKey:
|
||||
fallthrough
|
||||
case compressionFormatParallelGZipKey:
|
||||
name = strings.TrimSuffix(name, compressionFormatGZipSuffix)
|
||||
case compressionFormatLZ4Key:
|
||||
name = strings.TrimSuffix(name, compressionFormatLZ4Suffix)
|
||||
case compressionFormatZStandardKey:
|
||||
name = strings.TrimSuffix(name, compressionFormatZStandardSuffix)
|
||||
case compressionFormatBrotliKey:
|
||||
name = strings.TrimSuffix(name, compressionFormatBrotliSuffix)
|
||||
case compressionFormatBzip2Key:
|
||||
fallthrough
|
||||
case compressionFormatBzip2ParallelKey:
|
||||
name = strings.TrimSuffix(name, compressionFormatBzip2Suffix)
|
||||
case compressionFormatNoneKey:
|
||||
default:
|
||||
return "", errUnsupportedCompressionFormat
|
||||
}
|
||||
|
||||
return name, nil
|
||||
}
|
||||
|
||||
func openTapeReadOnly(tape string) (f *os.File, isRegular bool, err error) {
|
||||
fileDescription, err := os.Stat(tape)
|
||||
if err != nil {
|
||||
|
||||
@@ -205,32 +205,9 @@ func update(
|
||||
hdr.PAXRecords[pax.STFSRecordUncompressedSize] = strconv.Itoa(int(hdr.Size))
|
||||
hdr.Size = int64(fileSizeCounter.BytesRead)
|
||||
|
||||
switch compressionFormat {
|
||||
case compressionFormatGZipKey:
|
||||
fallthrough
|
||||
case compressionFormatParallelGZipKey:
|
||||
hdr.Name += compressionFormatGZipSuffix
|
||||
case compressionFormatLZ4Key:
|
||||
hdr.Name += compressionFormatLZ4Suffix
|
||||
case compressionFormatZStandardKey:
|
||||
hdr.Name += compressionFormatZStandardSuffix
|
||||
case compressionFormatBrotliKey:
|
||||
hdr.Name += compressionFormatBrotliSuffix
|
||||
case compressionFormatBzip2Key:
|
||||
fallthrough
|
||||
case compressionFormatBzip2ParallelKey:
|
||||
hdr.Name += compressionFormatBzip2Suffix
|
||||
case compressionFormatNoneKey:
|
||||
default:
|
||||
return errUnsupportedCompressionFormat
|
||||
}
|
||||
|
||||
switch encryptionFormat {
|
||||
case encryptionFormatAgeKey:
|
||||
hdr.Name += encryptionFormatAgeSuffix
|
||||
case compressionFormatNoneKey:
|
||||
default:
|
||||
return errUnsupportedEncryptionFormat
|
||||
hdr.Name, err = addSuffix(hdr.Name, compressionFormat, encryptionFormat)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user