From 8d8e92d31e2dfb27c7c87a2b5f92fe71dae9724d Mon Sep 17 00:00:00 2001 From: azw Date: Sat, 3 Aug 2024 16:22:39 +0800 Subject: [PATCH] 1 --- metatable.go | 7 ++----- sysutils_unix.go | 8 ++++++++ sysutils_windows.go | 29 +++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 sysutils_unix.go create mode 100644 sysutils_windows.go diff --git a/metatable.go b/metatable.go index 2a7b2f0..1219b78 100644 --- a/metatable.go +++ b/metatable.go @@ -1,13 +1,11 @@ package f5 import ( - "bufio" "encoding/json" "fmt" - "os" + "math/rand" "q5" "reflect" - "math/rand" ) type MetaTable interface { @@ -119,8 +117,7 @@ func (this *RawMetaTable[T]) Load() { if this.NoLoad { return } - if f, err := os.Open(this.FileName); err == nil { - jsonStr, _ := bufio.NewReader(f).ReadString(0) + if jsonStr, err := ReadJsonFile(this.FileName); err == nil { switch q5.JsonStrType(jsonStr) { case q5.JSON_ARRAY: break diff --git a/sysutils_unix.go b/sysutils_unix.go new file mode 100644 index 0000000..be18a50 --- /dev/null +++ b/sysutils_unix.go @@ -0,0 +1,8 @@ +//go:build unix +// +build unix + +package f5 + +func ReadJsonFile(fileName string) (string, error) { + return q5.ReadTextFile(fileName) +} diff --git a/sysutils_windows.go b/sysutils_windows.go new file mode 100644 index 0000000..f1ca483 --- /dev/null +++ b/sysutils_windows.go @@ -0,0 +1,29 @@ +//go:build windows +// +build windows + +package f5 + +import ( + "q5" + "strings" +) + +func ReadJsonFile(fileName string) (string, error) { + if tmpStr, err := q5.ReadTextFile(fileName); err != nil { + return tmpStr, err + } else { + switch q5.JsonStrType(tmpStr) { + case q5.JSON_ARRAY, q5.JSON_OBJECT: + { + return tmpStr, nil + } + default: + index := strings.LastIndex(fileName, "/") + if index <= 0 { + return q5.ReadTextFile(fileName + "/" + tmpStr) + } else { + return q5.ReadTextFile(fileName[0:index+1] + tmpStr) + } + } + } +}