packages feed

pathwalk-0.3.1.0: examples/accumulate/Main.hs

module Main (main) where

import Control.Monad (forM_)
import Data.Monoid (Sum(..))
import System.Directory.PathWalk (pathWalkAccumulate)
import System.Environment (getArgs)

main :: IO ()
main = do
    rawArgs <- getArgs
    let args = if rawArgs == [] then ["."] else rawArgs
    forM_ args $ \arg -> do
        (Sum total) <- pathWalkAccumulate arg $ \root _dirs files -> do
            putStrLn $ "files in " ++ root ++ ": " ++ show (length files)
            return $ Sum (length files)
        putStrLn $ "Total: " ++ show total