mirror of
https://github.com/rwinkhart/libmutton.git
synced 2026-08-28 04:46:42 -04:00
36 lines
966 B
Go
36 lines
966 B
Go
package core
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/rwinkhart/go-boilerplate/back"
|
|
"github.com/rwinkhart/libmutton/crypt"
|
|
)
|
|
|
|
// GetOldEntryData decrypts and returns old entry data (with all required lines present).
|
|
func GetOldEntryData(targetLocation string, field int) ([]string, error) {
|
|
// ensure targetLocation exists
|
|
back.TargetIsFile(targetLocation, true, 2)
|
|
|
|
// read old entry data
|
|
decryptedEntry, err := crypt.DecryptFileToSlice(targetLocation)
|
|
if err != nil {
|
|
return nil, errors.New("unable to decrypt entry: " + err.Error())
|
|
}
|
|
|
|
// return the old entry data with all required lines present
|
|
if field > 0 {
|
|
return ensureSliceLength(decryptedEntry, field), nil
|
|
} else {
|
|
return decryptedEntry, nil
|
|
}
|
|
}
|
|
|
|
// ensureSliceLength is a utility function that ensures a slice is long enough to contain the specified index.
|
|
func ensureSliceLength(slice []string, index int) []string {
|
|
for len(slice) <= index {
|
|
slice = append(slice, "")
|
|
}
|
|
return slice
|
|
}
|