packages feed

unix-recursive-0.1.0.0: bin/dirstream.hs

module Main where

import Control.Applicative
import Data.DirStream
import Data.String
import qualified Filesystem.Path as F
import Pipes
import Pipes.Prelude hiding (print)
import Pipes.Safe
import System.Environment
import Prelude hiding (length)


dirstreamGet :: F.FilePath -> ListT (SafeT IO) F.FilePath
dirstreamGet path = do
    child <- childOf path
    isDir <- liftIO $ isDirectory child
    if isDir
        then pure child <|> descendentOf child
        else pure child


main :: IO ()
main = do
    [path] <- getArgs

    count <-
        runSafeT $
            runEffect $
                (length (every (descendentOf (fromString path))))

    print count