From 3c1f75e8cf8d88287e6b501fda61aec9effa97ee Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Thu, 25 Dec 2025 11:17:51 +0530 Subject: Add owner:group info in out --- lib/Daffm/State.hs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'lib/Daffm/State.hs') diff --git a/lib/Daffm/State.hs b/lib/Daffm/State.hs index 1334327..106fee5 100644 --- a/lib/Daffm/State.hs +++ b/lib/Daffm/State.hs @@ -19,8 +19,8 @@ import qualified Data.Text.Zipper.Generic as Zipper import qualified Data.Vector as Vec import System.Directory (doesPathExist, getCurrentDirectory, getHomeDirectory, getPermissions, getSymbolicLinkTarget, listDirectory, makeAbsolute, readable, setCurrentDirectory) import System.FilePath (joinPath, takeDirectory) -import System.PosixCompat (fileExist) import qualified System.PosixCompat as Posix +import qualified System.Posix.User as Posix mkEditor :: (Zipper.GenericTextZipper a) => a -> Editor.Editor a FocusTarget mkEditor = Editor.editor FocusCmdline (Just 1) @@ -137,12 +137,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 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, fileType = fileTypeFromStatus stat, fileLinkType = fileTypeFromStatus <$> linkStat, fileLinkTarget = linkTarget @@ -179,5 +183,5 @@ cacheDirPosition appState@(AppState {stateListPositionHistory, stateCwd, stateFi filterInvalidSelections :: AppState -> IO AppState filterInvalidSelections st = do - selections <- filterM (fileExist . Text.unpack) . Set.elems $ stateFileSelections st + selections <- filterM (Posix.fileExist . Text.unpack) . Set.elems $ stateFileSelections st pure $ st {stateFileSelections = Set.fromList selections} -- cgit v1.3.1