1313--
1414-----------------------------------------------------------------------------
1515
16+ {-# LANGUAGE TupleSections #-}
17+
1618module Main where
1719
1820import Control.Monad (unless )
@@ -24,6 +26,7 @@ import Data.Version (showVersion)
2426import Options.Applicative
2527import System.Directory (createDirectoryIfMissing )
2628import System.FilePath ((</>) )
29+ import System.FilePath.Glob (glob )
2730import System.Exit (exitFailure , exitSuccess )
2831import System.IO (hPutStr , stderr )
2932
@@ -50,13 +53,14 @@ instance Ord SuperMap where
5053runModuleName :: P. ModuleName -> String
5154runModuleName (P. ModuleName pns) = intercalate " _" (P. runProperName `map` pns)
5255
53- readInput :: FilePath -> IO (Either P. MultipleErrors [P. Module ])
54- readInput filename = do
55- content <- readFile filename
56- return $ map snd <$> P. parseModulesFromFiles id [(filename, content)]
56+ readInput :: [ FilePath ] -> IO (Either P. MultipleErrors [P. Module ])
57+ readInput paths = do
58+ content <- mapM ( \ path -> (path, ) <$> readFile path) paths
59+ return $ map snd <$> P. parseModulesFromFiles id content
5760
5861compile :: HierarchyOptions -> IO ()
59- compile (HierarchyOptions input mOutput) = do
62+ compile (HierarchyOptions inputGlob mOutput) = do
63+ input <- glob inputGlob
6064 modules <- readInput input
6165 case modules of
6266 Left errs -> hPutStr stderr (P. prettyPrintMultipleErrors False errs) >> exitFailure
0 commit comments