Loading...
{-# LANGUAGE CPP #-}
-- Report all events recursively under the paths provided as arguments
module Main (main) where

import Data.Function ((&))
import System.Environment (getArgs)

import qualified Data.List.NonEmpty as NonEmpty
import qualified Streamly.Data.Fold as Fold
import qualified Streamly.Data.Stream as Stream
import qualified Streamly.FileSystem.Path as Path

#if darwin_HOST_OS
import qualified Streamly.Internal.FS.Event.Darwin as Event
#elif linux_HOST_OS
import qualified Streamly.Internal.FS.Event.Linux as Event
#elif mingw32_HOST_OS
import qualified Streamly.Internal.FS.Event.Windows as Event
#else
#error "FS Events not supported on this platform"
#endif

-------------------------------------------------------------------------------
-- Main
-------------------------------------------------------------------------------

main :: IO ()
main = do
    args <- getArgs
    paths <- mapM Path.fromString args
    Event.watch (NonEmpty.fromList paths)
        & Stream.fold (Fold.drainMapM (putStrLn . Event.showEvent))