diff --git a/fileinfo.go b/fileinfo.go new file mode 100644 index 0000000..8c2c8f7 --- /dev/null +++ b/fileinfo.go @@ -0,0 +1,30 @@ +package raft + +import ( + "io/fs" + + "sourcecode.social/reiver/go-erorr" +) + +// fileInfo is similar to fs.File.Stat(), except that if fs.File.Stat() returns 'nil' for 'fs.FileInfo' then it returns an error. +func fileInfo(file fs.File) (fs.FileInfo, error) { + + if nil == file { + return nil, errNilFile + } + + var fileinfo fs.FileInfo + { + var err error + + fileinfo, err = file.Stat() + if nil != err { + return nil, erorr.Errorf("raft: problem getting file-info: %w", err) + } + if nil == fileinfo { + return nil, errNilFileInfo + } + } + + return fileinfo, nil +}