From 4450d2c8d1e6f76fe14b4f5baec9a78f3fe0bf74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=97=E5=AD=90?= Date: Tue, 12 Nov 2024 12:56:17 +0800 Subject: [PATCH] fix: test --- pkg/io/file.go | 50 ++++++++++++++++++++++++-------------------------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/pkg/io/file.go b/pkg/io/file.go index b591a5f3..358b7a76 100644 --- a/pkg/io/file.go +++ b/pkg/io/file.go @@ -14,23 +14,22 @@ func Write(path string, data string, permission os.FileMode) error { return err } + iFlag, aFlag := false, false file, err := os.OpenFile(path, os.O_RDONLY, permission) - if err != nil { - return err - } + if err == nil { + iFlag, _ = chattr.IsAttr(file, chattr.FS_IMMUTABLE_FL) + aFlag, _ = chattr.IsAttr(file, chattr.FS_APPEND_FL) + if iFlag { + _ = chattr.UnsetAttr(file, chattr.FS_IMMUTABLE_FL) + } + if aFlag { + _ = chattr.UnsetAttr(file, chattr.FS_APPEND_FL) + } - iFlag, _ := chattr.IsAttr(file, chattr.FS_IMMUTABLE_FL) - aFlag, _ := chattr.IsAttr(file, chattr.FS_APPEND_FL) - if iFlag { - _ = chattr.UnsetAttr(file, chattr.FS_IMMUTABLE_FL) - } - if aFlag { - _ = chattr.UnsetAttr(file, chattr.FS_APPEND_FL) - } - - // 关闭文件重新以写入方式打开 - if err = file.Close(); err != nil { - return err + // 关闭文件重新以写入方式打开 + if err = file.Close(); err != nil { + return err + } } file, err = os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, permission) if err != nil { @@ -55,19 +54,18 @@ func Write(path string, data string, permission os.FileMode) error { // WriteAppend 追加写入文件 func WriteAppend(path string, data string, permission os.FileMode) error { + iFlag := false file, err := os.OpenFile(path, os.O_RDONLY, permission) - if err != nil { - return err - } + if err == nil { + iFlag, _ = chattr.IsAttr(file, chattr.FS_IMMUTABLE_FL) + if iFlag { + _ = chattr.UnsetAttr(file, chattr.FS_IMMUTABLE_FL) + } - iFlag, _ := chattr.IsAttr(file, chattr.FS_IMMUTABLE_FL) - if iFlag { - _ = chattr.UnsetAttr(file, chattr.FS_IMMUTABLE_FL) - } - - // 关闭文件重新以写入方式打开 - if err = file.Close(); err != nil { - return err + // 关闭文件重新以写入方式打开 + if err = file.Close(); err != nil { + return err + } } file, err = os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_APPEND, permission) if err != nil {