aboutsummaryrefslogtreecommitdiff
path: root/lib/Daffm/State.hs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/Daffm/State.hs9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/Daffm/State.hs b/lib/Daffm/State.hs
index 9b3d81d..f7c8aa1 100644
--- a/lib/Daffm/State.hs
+++ b/lib/Daffm/State.hs
@@ -11,6 +11,7 @@ import Control.Exception (try)
import Control.Monad (filterM, forM)
import Daffm.Types
import Daffm.Utils (trim)
+import Data.Either (fromRight)
import Data.List (findIndex, sortBy)
import qualified Data.Map.Strict as Map
import Data.Maybe (fromMaybe)
@@ -147,16 +148,16 @@ getFileInfo name = do
if
| Posix.isSymbolicLink stat -> Just . Text.pack <$> getSymbolicLinkTarget path
| otherwise -> pure Nothing
- user <- Posix.getUserEntryForID $ Posix.fileOwner stat
- group <- Posix.getGroupEntryForID $ Posix.fileGroup stat
+ user <- either2Maybe <$> try (Posix.getUserEntryForID $ Posix.fileOwner stat)
+ group <- either2Maybe <$> try (Posix.getGroupEntryForID $ Posix.fileGroup stat)
pure $
FileInfo
{ filePath = Text.pack path,
fileName = name,
fileSize = Posix.fileSize stat,
fileMode = Posix.fileMode stat,
- fileUser = Text.pack . Posix.userName $ user,
- fileGroup = Text.pack . Posix.groupName $ group,
+ fileUser = maybe "?" (Text.pack . Posix.userName) user,
+ fileGroup = maybe "?" (Text.pack . Posix.groupName) group,
fileType = fileTypeFromStatus stat,
fileLinkType = fileTypeFromStatus <$> linkStat,
fileLinkTarget = linkTarget