summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Milde <daniel@milde.cz>2024-04-30 15:56:23 +0200
committerDaniel Milde <daniel@milde.cz>2024-04-30 15:56:23 +0200
commitce2cbca84e94dc6ae4ec3790786f468a3ef1bfe6 (patch)
treed9159ad3e967f735dbf56de2a02645b2cb8c6e65
parentca00034c59f7f2237b429a4d7b499e03721702c0 (diff)
refactor: non-pointer type
-rw-r--r--pkg/analyze/parallel.go15
-rw-r--r--pkg/analyze/sequential.go5
2 files changed, 13 insertions, 7 deletions
diff --git a/pkg/analyze/parallel.go b/pkg/analyze/parallel.go
index 1488e60..7fa517a 100644
--- a/pkg/analyze/parallel.go
+++ b/pkg/analyze/parallel.go
@@ -140,12 +140,15 @@ func (a *ParallelAnalyzer) processDir(path string) *Dir {
continue
}
if a.followSymlinks && info.Mode()&os.ModeSymlink != 0 {
- err = followSymlink(entryPath, &info)
+ infoF, err := followSymlink(entryPath)
if err != nil {
log.Print(err.Error())
dir.Flag = '!'
continue
}
+ if infoF != nil {
+ info = infoF
+ }
}
file = &File{
@@ -217,17 +220,17 @@ func getFlag(f os.FileInfo) rune {
return ' '
}
-func followSymlink(path string, f *os.FileInfo) error {
+func followSymlink(path string) (os.FileInfo, error) {
target, err := filepath.EvalSymlinks(path)
if err != nil {
- return err
+ return nil, err
}
tInfo, err := os.Lstat(target)
if err != nil {
- return err
+ return nil, err
}
if !tInfo.IsDir() {
- *f = tInfo
+ return tInfo, nil
}
- return nil
+ return nil, nil
}
diff --git a/pkg/analyze/sequential.go b/pkg/analyze/sequential.go
index 77fbd44..507ebfd 100644
--- a/pkg/analyze/sequential.go
+++ b/pkg/analyze/sequential.go
@@ -127,12 +127,15 @@ func (a *SequentialAnalyzer) processDir(path string) *Dir {
continue
}
if a.followSymlinks && info.Mode()&os.ModeSymlink != 0 {
- err = followSymlink(entryPath, &info)
+ infoF, err := followSymlink(entryPath)
if err != nil {
log.Print(err.Error())
dir.Flag = '!'
continue
}
+ if infoF != nil {
+ info = infoF
+ }
}
file = &File{