Reverse sort
This commit is contained in:
parent
966744f709
commit
0e788c443d
@ -1,14 +1,17 @@
|
|||||||
module Main where
|
module Main where
|
||||||
|
|
||||||
import System.Posix.Directory ( getWorkingDirectory )
|
import System.Posix.Directory ( getWorkingDirectory )
|
||||||
import System.Directory
|
import System.Directory ( pathIsSymbolicLink
|
||||||
( pathIsSymbolicLink, doesFileExist, getFileSize, doesDirectoryExist )
|
, doesFileExist
|
||||||
|
, getFileSize
|
||||||
|
, doesDirectoryExist )
|
||||||
import Data.Functor ( (<&>) )
|
import Data.Functor ( (<&>) )
|
||||||
import Control.Monad ( filterM )
|
import Control.Monad ( filterM )
|
||||||
import System.Directory.Extra ( listContents )
|
import System.Directory.Extra ( listContents )
|
||||||
import Brick
|
import Brick
|
||||||
import Graphics.Vty
|
import Graphics.Vty
|
||||||
import Data.List.Extra
|
import Data.List.Extra
|
||||||
|
import qualified Data.Ord
|
||||||
|
|
||||||
listNonSymFiles :: FilePath -> IO [FilePath]
|
listNonSymFiles :: FilePath -> IO [FilePath]
|
||||||
listNonSymFiles dir = filterM (fmap not . pathIsSymbolicLink) =<< filterM doesFileExist =<< listContents dir
|
listNonSymFiles dir = filterM (fmap not . pathIsSymbolicLink) =<< filterM doesFileExist =<< listContents dir
|
||||||
@ -21,7 +24,7 @@ getSizeSubpaths x = do
|
|||||||
sub <- listNonSymDirectories x
|
sub <- listNonSymDirectories x
|
||||||
subby <- mapM (\y -> (y,) . sum . map snd <$> getSizeSubpaths y) sub
|
subby <- mapM (\y -> (y,) . sum . map snd <$> getSizeSubpaths y) sub
|
||||||
local <- listNonSymFiles x >>= (\y -> mapM getFileSize y <&> zip y)
|
local <- listNonSymFiles x >>= (\y -> mapM getFileSize y <&> zip y)
|
||||||
pure $ local ++ subby
|
pure $ sortOn (Data.Ord.Down . snd) $ local ++ subby
|
||||||
|
|
||||||
data AppS = AppS
|
data AppS = AppS
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user