mirror of
https://git.um-react.app/um/cli.git
synced 2026-10-20 05:28:34 +00:00
fix: enhance LoadFromPath function to include file size and optional CRC handling for improved error logging
This commit is contained in:
+11
-1
@@ -2,6 +2,7 @@ package mmkv
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
|
||||
"git.um-react.app/um/cli/algo/common"
|
||||
@@ -21,6 +22,7 @@ func LoadFromPath(path string, key string, logger *zap.Logger) (result common.QM
|
||||
}
|
||||
defer mr.Close()
|
||||
|
||||
var crc io.Reader
|
||||
cr, err := os.Open(mmkv_crc)
|
||||
if err != nil {
|
||||
// crc is optional
|
||||
@@ -28,14 +30,22 @@ func LoadFromPath(path string, key string, logger *zap.Logger) (result common.QM
|
||||
key = ""
|
||||
} else {
|
||||
defer cr.Close()
|
||||
crc = cr
|
||||
}
|
||||
|
||||
stat, err := os.Stat(path)
|
||||
if err != nil {
|
||||
logger.Error("LoadMMKV: Could not stat mmkv file", zap.Error(err))
|
||||
return nil, fmt.Errorf("LoadMMKV: stat error: %w", err)
|
||||
}
|
||||
mmkv_size := stat.Size()
|
||||
|
||||
var password []byte = nil
|
||||
if key != "" {
|
||||
password = make([]byte, 16)
|
||||
copy(password, []byte(key))
|
||||
}
|
||||
mmkv, err := go_mmkv.NewMMKVReader(mr, password, cr)
|
||||
mmkv, err := go_mmkv.NewMMKVReader(mr, mmkv_size, password, crc)
|
||||
if err != nil {
|
||||
logger.Error("LoadMMKV: failed to create reader", zap.Error(err))
|
||||
return nil, fmt.Errorf("LoadMMKV: NewMMKVReader error: %w", err)
|
||||
|
||||
Reference in New Issue
Block a user