From a35ac4f2d3f75c67cf03c56c49153f7b13eb0b15 Mon Sep 17 00:00:00 2001 From: sre Date: Thu, 23 Jun 2022 16:34:29 +0800 Subject: [PATCH] os function --- gtool.go | 2 ++ operaSystem/entry.go | 4 ++++ operaSystem/entry_test.go | 3 +++ operaSystem/file.go | 37 +++++++++++++++++++++++++++++++++++++ operaSystem/file_test.go | 14 ++++++++++++++ operaSystem/info.go | 15 +++++++++++++++ operaSystem/info_test.go | 11 +++++++++++ 7 files changed, 86 insertions(+) create mode 100644 operaSystem/entry.go create mode 100644 operaSystem/entry_test.go create mode 100644 operaSystem/file.go create mode 100644 operaSystem/file_test.go create mode 100644 operaSystem/info.go create mode 100644 operaSystem/info_test.go diff --git a/gtool.go b/gtool.go index 9a9fbd9..a4a674d 100644 --- a/gtool.go +++ b/gtool.go @@ -5,6 +5,7 @@ import ( "git.sre.ink/go/gtool/crypto" "git.sre.ink/go/gtool/file" "git.sre.ink/go/gtool/net" + "git.sre.ink/go/gtool/operaSystem" "git.sre.ink/go/gtool/rand" "git.sre.ink/go/gtool/regx" "git.sre.ink/go/gtool/str" @@ -18,5 +19,6 @@ var ( Conv convert.Conv Regx regx.Regx File file.File + OS operaSystem.OperaSystem NET net.NET ) diff --git a/operaSystem/entry.go b/operaSystem/entry.go new file mode 100644 index 0000000..b3b0a3a --- /dev/null +++ b/operaSystem/entry.go @@ -0,0 +1,4 @@ +package operaSystem + +type OperaSystem struct { +} diff --git a/operaSystem/entry_test.go b/operaSystem/entry_test.go new file mode 100644 index 0000000..19ca245 --- /dev/null +++ b/operaSystem/entry_test.go @@ -0,0 +1,3 @@ +package operaSystem + +var operaSystem OperaSystem diff --git a/operaSystem/file.go b/operaSystem/file.go new file mode 100644 index 0000000..b78917f --- /dev/null +++ b/operaSystem/file.go @@ -0,0 +1,37 @@ +package operaSystem + +import ( + "encoding/base64" + "os" +) + +func (fl *OperaSystem) ByteToBase64(b []byte) string { + return base64.StdEncoding.EncodeToString(b) +} + +// Base64ToByte base64 string to byte +// baseStr parameter is base64 string +func (fl *OperaSystem) Base64ToByte(baseStr string) ([]byte, error) { + return base64.StdEncoding.DecodeString(string(baseStr)) +} + +// ByteToFile The byte array is converted into a file and landed +// The parameter b is the bate array filePath file path +func (fl *OperaSystem) ByteToFile(b []byte, filePath string) error { + //Open file Create a file if there is no file + file, err := os.OpenFile(filePath, os.O_RDWR|os.O_CREATE, os.ModePerm) + if err != nil { + return err + } + _, err = file.Write(b) + if err != nil { + return err + } + defer func(file *os.File) { + err := file.Close() + if err != nil { + panic(err) + } + }(file) + return nil +} diff --git a/operaSystem/file_test.go b/operaSystem/file_test.go new file mode 100644 index 0000000..9ca07d0 --- /dev/null +++ b/operaSystem/file_test.go @@ -0,0 +1,14 @@ +package operaSystem + +import ( + "fmt" + "testing" +) + +func TestFile_ByteToBase64(t *testing.T) { + byteStr := []byte("hello world!") + base64Str := operaSystem.ByteToBase64(byteStr) + byteResult, _ := operaSystem.Base64ToByte(base64Str) + fmt.Println(base64Str) + fmt.Println(byteResult) +} diff --git a/operaSystem/info.go b/operaSystem/info.go new file mode 100644 index 0000000..16136d0 --- /dev/null +++ b/operaSystem/info.go @@ -0,0 +1,15 @@ +package operaSystem + +import "runtime" + +func (os *OperaSystem) GOOS() string { + return runtime.GOOS +} + +func (os *OperaSystem) GOARCH() string { + return runtime.GOARCH +} + +func (os *OperaSystem) GOGC() string { + return runtime.Compiler +} diff --git a/operaSystem/info_test.go b/operaSystem/info_test.go new file mode 100644 index 0000000..0fa6bb4 --- /dev/null +++ b/operaSystem/info_test.go @@ -0,0 +1,11 @@ +package operaSystem + +import ( + "fmt" + "testing" +) + +func TestOS_GOOS(t *testing.T) { + fmt.Println(operaSystem.GOOS()) + fmt.Println(operaSystem.GOGC()) +}