aboutsummaryrefslogtreecommitdiff
path: root/hotline/files.go
diff options
context:
space:
mode:
authorJeff Halter <868228+jhalter@users.noreply.github.com>2024-06-17 13:50:28 -0700
committerJeff Halter <868228+jhalter@users.noreply.github.com>2024-06-17 13:50:28 -0700
commit45ca5d60383cbe270624c713b916da29af7ba88f (patch)
treea6f8b9ecf24837e8588390ae5bdf5fdef711fed9 /hotline/files.go
parent5954ccad9c87063231f3a8bb3e5d01675a9865ca (diff)
Fix io.Reader implementations and wrap more errors
Diffstat (limited to 'hotline/files.go')
-rw-r--r--hotline/files.go16
1 files changed, 9 insertions, 7 deletions
diff --git a/hotline/files.go b/hotline/files.go
index 0963fbf..901b98c 100644
--- a/hotline/files.go
+++ b/hotline/files.go
@@ -3,6 +3,7 @@ package hotline
import (
"encoding/binary"
"errors"
+ "fmt"
"io"
"io/fs"
"os"
@@ -36,10 +37,11 @@ const maxFileSize = 4294967296
func getFileNameList(path string, ignoreList []string) (fields []Field, err error) {
files, err := os.ReadDir(path)
if err != nil {
- return fields, nil
+ return fields, fmt.Errorf("error reading path: %s: %w", path, err)
}
- for _, file := range files {
+ for i, _ := range files {
+ file := files[i]
var fnwi FileNameWithInfo
if ignoreFile(file.Name(), ignoreList) {
@@ -50,14 +52,14 @@ func getFileNameList(path string, ignoreList []string) (fields []Field, err erro
fileInfo, err := file.Info()
if err != nil {
- return fields, err
+ return fields, fmt.Errorf("error getting file info: %s: %w", file.Name(), err)
}
// Check if path is a symlink. If so, follow it.
if fileInfo.Mode()&os.ModeSymlink != 0 {
resolvedPath, err := os.Readlink(filepath.Join(path, file.Name()))
if err != nil {
- return fields, err
+ return fields, fmt.Errorf("error following symlink: %s: %w", resolvedPath, err)
}
rFile, err := os.Stat(resolvedPath)
@@ -92,7 +94,7 @@ func getFileNameList(path string, ignoreList []string) (fields []Field, err erro
} else if file.IsDir() {
dir, err := os.ReadDir(filepath.Join(path, file.Name()))
if err != nil {
- return fields, err
+ return fields, fmt.Errorf("readDir: %w", err)
}
var c uint32
@@ -113,7 +115,7 @@ func getFileNameList(path string, ignoreList []string) (fields []Field, err erro
hlFile, err := newFileWrapper(&OSFileStore{}, path+"/"+file.Name(), 0)
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("newFileWrapper: %w", err)
}
copy(fnwi.FileSize[:], hlFile.totalSize())
@@ -135,7 +137,7 @@ func getFileNameList(path string, ignoreList []string) (fields []Field, err erro
b, err := io.ReadAll(&fnwi)
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("error io.ReadAll: %w", err)
}
fields = append(fields, NewField(FieldFileNameWithInfo, b))
}