From 06d2ef30560cdad6de220bfa05dfa9720474caec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Tue, 11 Mar 2025 18:44:30 +0100 Subject: [PATCH] Properly show symlinks in Mode Previously they were extracted OK (as symlinks), but shown as regular files with length 0 when getting the file info. --- file_info.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/file_info.go b/file_info.go index 462e78e..c6e7b8d 100644 --- a/file_info.go +++ b/file_info.go @@ -53,6 +53,9 @@ func (f fileInfo) Mode() fs.FileMode { if f.IsDir() { return fs.FileMode(f.perm | uint32(fs.ModeDir)) } + if f.IsSymlink() { + return fs.FileMode(f.perm | uint32(fs.ModeSymlink)) + } return fs.FileMode(f.perm) } @@ -64,6 +67,10 @@ func (f fileInfo) IsDir() bool { return f.fileType == inode.Dir || f.fileType == inode.EDir } +func (f fileInfo) IsSymlink() bool { + return f.fileType == inode.Sym || f.fileType == inode.ESym +} + func (f fileInfo) Sys() any { return nil }