aboutsummaryrefslogtreecommitdiff
path: root/lib/Daffm/State.hs
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-12-25 11:17:51 +0530
committerAkshay Nair <phenax5@gmail.com>2025-12-25 11:17:51 +0530
commit3c1f75e8cf8d88287e6b501fda61aec9effa97ee (patch)
tree0f7b2245d42b24630b3d8a8990e2a36ece3a519a /lib/Daffm/State.hs
parent0c3b673e1614677a20f0b0b22af8bd017228b5e0 (diff)
downloaddaffm-3c1f75e8cf8d88287e6b501fda61aec9effa97ee.tar.gz
daffm-3c1f75e8cf8d88287e6b501fda61aec9effa97ee.zip
Add owner:group info in out
Diffstat (limited to '')
-rw-r--r--lib/Daffm/State.hs8
1 files changed, 6 insertions, 2 deletions
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}